[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgis-users
Subject:    Re: [postgis-users] ST_Intersects(BOOM!)
From:       "Regina Obe" <lr () pcorp ! us>
Date:       2017-08-29 3:38:55
Message-ID: 000f01d32078$57e6bc60$07b43520$ () pcorp ! us
[Download RAW message or body]

Aaron,

This works fine for me.  

I'm also assuming you are using geometry and not geography so the code snippet you \
pointed at shouldn't be relevant.

In case you are though I tested both and they work fine for me.

What does your 

SELECT postgis_full_version(); 

Return?  Mine returns:
POSTGIS="2.4.0dev r15600" GEOS="3.7.0dev-CAPI-1.11.0 8fe2ce6" PROJ="Rel. 4.9.1, 04 \
March 2015" GDAL="GDAL 2.2.1, released 2017/06/23" LIBXML="2.7.8" LIBJSON="0.12" \
LIBPROTOBUF="1.2.1" RASTER

But the 2.4.0 part shouldn't matter, if you are running a lower Proj, that might \
matter.

Here is how I tested -- just to verify we are testing the same thing

I got to test out my new http extension compile - \
https://github.com/pramsey/pgsql-http   :)

CREATE EXTENSION http;

CREATE TABLE whosonfirst(id serial, geom geometry);

--SELECT http_set_curlopt('CURLOPT_CAINFO', 'C:/ssl/certs/ca-bundle.crt');
INSERT INTO  whosonfirst(geom)
SELECT ST_GeomFromGeoJSON(h.content::jsonb->>'geometry')
FROM http_get('https://whosonfirst.mapzen.com/data/136/253/057/136253057.geojson') AS \
h;

-- this works

SELECT id  FROM whosonfirst WHERE ST_Intersects(geom::geography, \
ST_GeomFromGeoJSON('{"type": "Point", "coordinates": [145.748209, \
15.193315]}')::geography);

Returns 1 as expected.

This also works:

SELECT id  FROM whosonfirst WHERE ST_Intersects(geom::geometry, \
ST_GeomFromGeoJSON('{"type": "Point", "coordinates": [145.748209, \
15.193315]}')::geometry);

Returns 1


SELECT ST_NPoints(geom) from whosonfirst;
Returns:
36822

Hope that helps,
Regina


-----Original Message-----
From: postgis-users [mailto:postgis-users-bounces@lists.osgeo.org] On Behalf Of Aaron \
                Cope
Sent: Monday, August 28, 2017 6:24 PM
To: postgis-users@lists.osgeo.org
Subject: [postgis-users] ST_Intersects(BOOM!)

Hi,

Apologies if this has been answered elsewhere already. If it has I've not been able \
to find it.

We are using PGIS to do point-in-poly lookups and having trouble involving certain \
very large records.

SELECT version();
                                                version
--------------------------------------------------------------------------------------------------------
  PostgreSQL 9.6.4 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu
4.8.4-2ubuntu1~14.04.3) 4.8.4, 64-bit
(1 row)

Specifically:

https://whosonfirst.mapzen.com/spelunker/id/136253057/
https://whosonfirst.mapzen.com/data/136/253/057/136253057.geojson

Whose MBR is:

-179.143503384, -14.532891534, 179.780935092, 71.412502346

This is where it starts to get confusing for me. PGIS indicates that both the \
geometry itself and the point we are trying to intersect with are valid:

SELECT ST_IsValid(geom::geometry) FROM whosonfirst WHERE id=136253057;  st_isvalid
------------
 t
(1 row)

SELECT ST_IsValid(ST_GeomFromGeoJSON('{"type": "Point", "coordinates":
[145.748209, 15.193315]}')::geometry);
 st_isvalid
------------
 t
(1 row)

However, when try to intersect against the former I trigger the "BOOM!
Could not generate outside point" error:

SELECT id, parent_id, placetype_id, meta FROM whosonfirst WHERE ST_Intersects(geom, \
ST_GeomFromGeoJSON('{"type": "Point", "coordinates": [145.748209, 15.193315]}'));
ERROR:  BOOM! Could not generate outside point!

https://github.com/postgis/postgis/blob/cc3437595e88eac7f20b0f3b780a3816cdc912c9/liblwgeom/lwgeodetic.c#L1536-L1537


We've also been able to reproduce the problem with this record which has a similarly \
large MBR:

https://whosonfirst.mapzen.com/spelunker/id/136253037/
https://whosonfirst.mapzen.com/data/136/253/037/136253037.geojson

Am I missing something obvious or is there something else at work here?


Thanks,
_______________________________________________
postgis-users mailing list
postgis-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/postgis-users

_______________________________________________
postgis-users mailing list
postgis-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/postgis-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic