Google App Engine搜索API执行基于位置的搜索

时间:2012-10-15 21:36:51

标签: python google-app-engine geolocation geocoding gae-search

我一直在尝试在Google App Engine上找到最佳选项,以便通过GPS坐标搜索模型。似乎有一些不错的选择,如GeoModel(已经过时),但新的Search API似乎是最新的,并提供了一些功能。这当然是因为一旦离开实验区,它在1000次搜索后变得昂贵。

我无法浏览文档并创建一个连贯的完整示例,以便能够使用Search API按位置进行搜索,并且我想知道是否有人有他们愿意分享或创建的示例来帮助完成此过程更直接一点。我理解如何创建实际的geosearch查询,但我不清楚如何将其与文档的构造和索引一起粘合。

1 个答案:

答案 0 :(得分:1)

我不知道任何具体显示地理位置的示例,但过程非常相似。您可以索引包含GeoField的文档,每个文档都包含latitudelongitude。然后,在构建查询时,您可以:

  • 使用distance(my_geo_field, geopoint(41, 65)) < 100
  • 等查询将结果与固定点的距离限制
  • 按距离与具有distance(my_geo_field, geopoint(55, -20))
  • 等排序表达式的点进行排序
  • 使用类似FieldExpression
  • distance(my_geo_field, geopoint(10, -30)),根据点之间的距离计算表达式

除了可以在查询和表达式语言中使用distance函数之外,它们的工作方式与其他任何字段非常相似。如果您有任何具体问题,请随时询问。