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

How do I calculate distance using a Google Maps Fusion Table?

我正在使用 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

但查询返回 "could not parse query" 错误。我也试过下面的查询,但我得到了同样的错误。

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

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

如果有人可以提供一些替代或开箱即用的解决方案,那就太棒了:)

  1. 您不能在 FusionTable-Query 中使用 acossin 等函数,支持的函数是聚合函数:COUNT 和 平均的 最大限度 最小值

  2. ST_DISTANCE 期望第一个参数是位置列的名称

  3. ST_DISTANCE 不能在 WHERE 子句中使用,它仅在 ORDER BY
  4. 中受支持

总结:FusionTable-Query

(目前)无法实现您想要实现的目标