Kyl*_*yle 6 python gis google-app-engine geohashing google-cloud-datastore
我正在为app引擎数据存储寻找替代库,它将执行最近n或盒装地理查询,目前我正在使用GeoModel 0.2并且运行速度非常慢(在某些情况下> 1.5秒).有没有人有什么建议?
谢谢!
我对geomodel有同样的问题.为了更正,我使用4的分辨率,我使用python排序和过滤器.
SEARCHED_LOCATION = db.GeoPt("48.8566667, 2.3509871") # Location of Paris.
DISTANCE = 50000 #Between 10000 and 150000.
MAX_RESULTS = 300
# Resolution '4' is about 150 kilometers i suppose it's a good compromise.
bbox = geocell.compute_box(geocell.compute(SEARCHED_LOCATION, resolution=4))
cell = geocell.best_bbox_search_cells(bbox, geomodel.default_cost_function)
query.filter('location_geocells IN', cell)
# Python filters
def _func(x):
"""Private method used to set the distance of the model to the searched location
and return this distance.
"""
x.dist = geomath.distance(SEARCHED_LOCATION, x.location)
return x.dist
results = sorted(query.fetch(MAX_RESULTS), key=_func) # Order the result by distance
results = [x for x in results if x.dist <= DISTANCE] # Filter the result
Run Code Online (Sandbox Code Playgroud)