使用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)。问题:这应该在开发环境中工作吗?
帮助是感激!!!!!
我对此也有一个开放的问题-我做了一些窥探,它看起来像是开发环境的问题。它可以在生产环境中工作。
查看问题,如果你想跟随:为什么地理搜索/基于位置的搜索返回零结果?
您还可以找到我提供的问题跟踪器的链接。