如果您使用
进行查询包含忽略大小写
然后查询将返回数据,但执行速度很慢。
如何查询融合表中的几何列?
我使用谷歌地图创建了一个kml文件,该文件已导入谷歌融合表。当我试图搜索经度&列geometry
中的纬度返回经度和区域的名称。纬度在折线内的一个或多个点匹配。
我的案例中的几何列存储了这样的折线:
当前单元格值:
<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>
现在我尝试查询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)))
并返回 void 但是如果你尝试在矩形中绘制相同的坐标,你可以很好地看到它,如果你看表,这个区域包含我的查询的有效坐标。
绘制相同的区域:
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.
有什么问题?有什么帮助吗?
答案 0 :(得分:1)
你的搜索RECTANGLE中你的纬度不对。
The syntax is: RECTANGLE(<lower_left_corner>, <upper_right_corner>)
你有:
ST_INTERSECTS('geometry',RECTANGLE(LATLNG(32.618591,-115.441528),LATLNG(31.954109,-115.212509)))
纬度32.618591&gt; 31.954109 当我改变这些纬度并运行你的查询时,我得到一个名字“Mexicali - El Faro”