2017-02-24 2 views
0

ich aus der Tabelle zurück Wert will, wo Punkt genau in Polygon-Feld existiert
ich Abfrage geschrieben, aber nicht genau, zurückgegebene Wert Punkt auch um das Polygon seineWie Wert zurück, wenn Punkt genau innerhalb Polygon in mysql

"select `name`,`loc_id` FROM `locations` where MBRContains(`polygons`,ST_GeomFromText('Point($loc[0] $loc[1])'))= 1" 

Antwort

1

In mysql statt MBR (Minimum Begrenzungsrechteck) sollten Sie ST_Contains

"select `name`,`loc_id` 
    FROM `locations` 
    where ST_CONTAINS(`polygons`,ST_GeomFromText('Point($loc[0] $loc[1])'))= 1" 

ST_Contains gibt true zurück, nur verwenden, wenn eine Funktion, um die andere enthält und aufgrund der Tatsache, dass Ihr für Punkt werden die Überprüfung so th ist, sollten Sie ein besseres Ergebnis

+0

Dank aber nicht funktioniert, zum Beispiel das Polygon '35,745816 \t \t \t 51.22839,35.750552 \t \t \t 51.227703,35.748323 \t \t \t 51.221008,35.745537 \t \t \t 51.221695,35.735993 \t \t \t 51,221266 geben , 35.731046 \t \t \t 51.242294,35.72798 \t \t \t 51.253281,35.746234 \t \t \t 51.254826,51.254826 \t \t \t 51.254654,35.745816 \t \t \t 51.22839' i für Punkt zu suchen '35,72798 51.25328' Ergebnis zeigt nichts – amirali

+0

dies von https://dev.mysql.com/doc/refman/5.6/en/spatial-relation -functions-object-shapes.html # function_st-contains ... stelle sicher, dass du den richtigen Geometrietyp und -wert hast – scaisEdge

Verwandte Themen