如何从A点列出20公里范围内的所有地方

时间:2016-05-10 17:21:05

标签: node.js google-maps express

我的目标只是列出距离A点20公里范围内的所有地方,我使用Google Maps API帮助我解决这个问题

我使用node.js / Express + mongoose作为后端部分。

例如,如果我住在A点,如果我打开手机,它会显示我所在位置附近的所有地点列表,即20公里内的A点

我如何在后端实现这一目标?

我应该通过什么条件传递到猫鼬找到地方列表,或者我的做法是错误的?

Place.find({}, function(err, places) {
   res.json(places);
});

2 个答案:

答案 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