谷歌应用引擎-搜索指定距离内的位置返回零结果



使用GAE Search API(1.7.6)按距离搜索地理位置总是返回零结果…

我建立以下查询:distance(geoLocation, geopoint(27.241131, -82.464445)) < 16093 /* 10 Miles in meters */

结果总是0,尽管我在距离内有地理点。例如,我的搜索原点在本例中是lat: 27.241131, lgn: -82.464445而范围内的一个地理点是lat:27.233247, lng-82.48819800000001.

当我使用google maps api v3计算距离时:

  google.maps.geometry.spherical.computeDistanceBetween (
new google.maps.LatLng(27.241131, -82.464445), 
new google.maps.LatLng(27.233247, -82.48819800000001)) = 2509.46

这是我如何存储地理点与其他字段

dictFields = []
dictFields.append(search.AtomField(name = 'zipcode', value = k.get('zipcode')))
geopoint = search.GeoPoint(float(lat), float(lng))
dictFields.append(search.GeoField(name = 'geoLocation', value = geopoint))

之后我做

search.Document(doc_id = document_id, fields = dictFields)

怎么了?我知道,搜索工作,因为它返回的结果当我搜索其他字段不同于地理点。

搜索id:

options = search.QueryOptions(limit=1000, returned_fields=['geoLocation', 'zipcode'])
query = search.Query(query_string=query_str, options=options)

where query_str = distance(geoLocation, geopoint(27.241131, -82.464445)) < 16093

更新

我正在使用索引存储的地理点进行测试,并获得search.SearchResults(number_found=0L)。问题:这应该在开发环境中工作吗?

帮助是感激!!!!!

我对此也有一个开放的问题-我做了一些窥探,它看起来像是开发环境的问题。它可以在生产环境中工作。

查看问题,如果你想跟随:为什么地理搜索/基于位置的搜索返回零结果?

您还可以找到我提供的问题跟踪器的链接。

相关内容

  • 没有找到相关文章

最新更新