如何使用Google Maps Fusion Table计算距离?

时间:2016-03-12 19:54:03

标签: mysql google-maps google-fusion-tables

我正在使用Google Map Fusion Tables,最近在获取所需数据时遇到了一个棘手的问题。

我正在使用以下查询:

SELECT geometry, ZIP, latitude, longitude,( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM 18n-gPzxv_usPqtFJka9ytDArJgi3Hh8tlGnfuwrN WHERE distance <= 25

但是查询正在返回&#34;无法解析查询&#34;错误。我也试过下面的查询,但我得到了同样的错误。

SELECT geometry, ZIP, latitude, longitude FROM 18n-gPzxv_usPqtFJka9ytDArJgi3Hh8tlGnfuwrN WHERE ST_DISTANCE(LATLNG(24.547123404292083, -114.32373084375001), LATLNG(37.4,-122.1)) <= 25

我无法在获取所有记录后计算距离。它就像数百万条记录(目前的表格大小为10MB)。我需要一个解决方案,就像我们可以使用空间函数(如ST_DISTANCE)或使用距离公式从MYSQL表中获取行一样。

如果任何人可以帮助提供一些替代或一些开箱即用的解决方案,那将是非常棒的:)

1 个答案:

答案 0 :(得分:1)

  1. 您无法在FusionTable-Query中使用acossin等功能,支持的功能是聚合功能:COUNT 和 平均 最大值 MINIMUM

  2. ST_DISTANCE期望第一个参数是Location-column的名称

  3. ST_DISTANCE不能用于WHERE - 子句,仅在ORDER BY支持
  4. 摘要:您目前无法通过FusionTable查询实现目标