我有一个来自Google地图的PlaceIds列表,我从查询位置名称的外部列表中获得。
我现在有一个“搜索”功能,您可以在其中输入您的邮政编码,它会找到最近的10个位置并在地图上显示它们。据我所知,Google只允许您按搜索字词进行搜索。
如何将搜索结果仅限制在我所提供的PlaceId列表中,并按距离排序?
注意:我没有搜索的“关键字”,其中包含我的所有PlaceIds。这些是从外部源检索的,并且没有“常用搜索关键字”将返回我的PlaceIds的超集。
答案 0 :(得分:1)
目前无法以这种方式限制PlacesSearch的结果。
可能的方法:
您还需要一个邮政编码数据库(包括位置)。
当您的数据库支持空间查询时,您可以使用ST_DISTANCE()
对结果进行排序并使用最近的10个结果。
当您的数据库不支持空间查询时,您可以使用haversine formula来计算距离
当然结果可能只是近似值,因为邮政编码通常与某个区域有关,而与某个位置无关