我的目标只是列出距离A点20公里范围内的所有地方,我使用Google Maps API帮助我解决这个问题
我使用node.js / Express + mongoose作为后端部分。
例如,如果我住在A点,如果我打开手机,它会显示我所在位置附近的所有地点列表,即20公里内的A点
我如何在后端实现这一目标?
我应该通过什么条件传递到猫鼬找到地方列表,或者我的做法是错误的?
Place.find({}, function(err, places) {
res.json(places);
});
答案 0 :(得分:0)
对指定区域内的地点使用Place Search - Nearby Search request。您可以通过提供关键字或指定要搜索的地点类型来优化搜索请求。
这是附近搜索请求的示例:
https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters
包含 rankby 参数以指定列出结果的顺序。可能的值为突出,距离和位置。
这是一张相关的SO票: Google Nearby places search
答案 1 :(得分:0)
另一种方法是使用Places API Web服务。
你有两个搜索注释1)附近搜索返回每个地方的完整信息,但每次查询最多返回20个结果,如果有更多可用的地方,则返回"下一页"令牌。
url="https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="+lat+","+long+"&radius=" +radius+"&types=" + types + "&key=<PUT_YOUR_API_KEY_HERE>";
lat和long是你的中心坐标。 radius以米为单位,最大值为50000.type是您根据此列表搜索的地点类型:https://developers.google.com/places/supported_types。示例:&#34; atm&#34;
2)雷达搜索返回每个地方的简化信息集,但每次查询最多返回200
url="https://maps.googleapis.com/maps/api/place/radarsearch/json?location="+lat+","+long+"&radius=" +radius+"&types=" + types + "&key=<PUT_YOUR_API_KEY_HERE>";
lat和long是你的中心坐标。 radius以米为单位,最大值为50000.type是您根据此列表搜索的地点类型:https://developers.google.com/places/supported_types。示例:&#34; atm&#34;
您有更多搜索选项,关键字&amp;从类型中命名appart。 请注意,您必须至少指定其中一个。
您可以使用xml或json格式获得结果。
附近和雷达搜索的完整定义如下:https://developers.google.com/places/web-service/search