2012-04-05 3 views
1

Wenn Sie Abfrage mitAbfrage in einer Geometrie-Spalte (erstellt von kml-Datei)?

ignorieren enthält Fall

dann die Abfrage die Daten zurück, aber tut so langsam.

Wie kann ich in einer Geometrie-Spalte in einer Fusionstabelle abfragen?

Ich erstellte eine Google-Datei mit Google Maps, die in Google Fusion-Tabelle importiert wurde. Wenn ich versuche, den Längengrad & Breitengrad in der Spalte geometry zu suchen, um die Namen der Zonen zurückzugeben, in denen der Längengrad & Breitengrad in einem oder mehreren Punkten innerhalb der Polylinie übereinstimmt.

Die Geometriespalte in meinem Fall speichert eine Polylinie wie folgt aus:

Aktuelle Zellenwert:

<LineString><coordinates> 
-99.832771,16.88472,0.0 
-99.832703,16.88558,0.0 
-99.832703,16.88558,0.0 
-99.831383,16.885441,0.0 
..... 
</coordinates></LineString> 

Jetzt versuche ich Abfrage tableid = 3427749:

http://fusiontables.googleusercontent.com/fusiontables/api/query?sql= 
SELECT name FROM 3427749 
WHERE ST_INTERSECTS('geometry',RECTANGLE(LATLNG(32.618591,-115.441528),LATLNG(31.954109,-115.212509))) 

und zurück Leere aber Wenn Sie versuchen, die gleichen Koordinaten in einem Rechteck zu zeichnen, können Sie es gut sehen und wenn Sie die Tabelle betrachten, enthält diese Region vali d Koordinaten für meine Abfrage.

Anstrich der gleichen Region:


var boudns = new google.maps.LatLngBounds(new google.maps.LatLng(32.618591, -115.441528), new google.maps.LatLng(31.954109,-115.212509)); 

var rectOptions = { 
      strokeColor: "#000000", 
      strokeOpacity: 0.6, 
      strokeWeight: 2, 
      fillColor: "#000000", 
      fillOpacity: 0.2, 
      bounds: boudns 
     }; 
rect.setOptions(rectOptions); 

var myOptions = { 
     center: new google.maps.LatLng(23.926013,-101.90918), 
     zoom: 5, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

rect.setMap(map); 

//You need implement a div with id map_canvas and put the code in `<script>` tags. 

Was ist falsch? Irgendwelche Hilfe, bitte?

Antwort

1

Sie haben Ihre Breiten falsch in Ihrer Suche RECTANGLE.

Vom FT SELECT Reference Docs

The syntax is: RECTANGLE(<lower_left_corner>, <upper_right_corner>) 

Sie haben:

ST_INTERSECTS('geometry',RECTANGLE(LATLNG(32.618591,-115.441528),LATLNG(31.954109,-115.212509))) 

Latitude 32,618591> 31,954109 Wenn ich diese Breiten eingeschaltet und lief Ihre Anfrage Ich habe einen Namen "Mexicali - El Faro"

+0

Vielen Dank, all diese Arbeit lassen mich nicht gut denken. Dank dir kann ich meine Tesis JIT beenden. Grüße +++ KARMA – daniel

Verwandte Themen