İki çok nokta arasındaki farkı bulmaya çalışıyorum. Bunu location = ST_Difference(location, other_geo)
sorgusunu kullanarak yapıyorum. Sonuç, boş olmadığında çalışır, ancak, iki çok nokta aynıysa, ortaya çıkan nesne, ST_geomFromText('MULTIPOINT EMPTY')
'dan döndürüldüğü gibi boş bir MultiPoint yerine GeometryCollection
olur. Sonucun boş bir çoklu nesne olması nasıl olur? Bir çok noktaya içindeST_DIFFERENCE, MultiPoint yerine GeometryCollection döndürüyor
aşağıdaki sorgu sonuçları:
SELECT ST_asGeoJSON(ST_Difference(ST_geomFromText('MultiPoint(1 2, 3 4)', 4326), ST_geomFromText('MultiPoint(1 2)', 4326)));
Sonuç: Boş GeometryCollection
içinde {"type":"Point","coordinates":[3,4]}
Bu seferki sonuçları:
SELECT ST_asGeoJSON(ST_Difference(ST_geomFromText('MultiPoint(1 2)', 4326), ST_geomFromText('MultiPoint(1 2)', 4326)));
Sonuç: {"type":"GeometryCollection","geometries":[]}
orada 1 puandan fazla geri döndü, ama 1 noktada bir 'Point' için normalleştirir, bu yüzden işe yaramaz – terpak