通过地址查找“在此位置”的商家

时间:2018-02-01 23:19:22

标签: google-maps google-maps-api-3 google-places-api

我们正在使用Google Places API返回文本搜索结果,我们会将地址传递给Google,并返回此地址的商家名称。如果它什么都没找到,或者该地址只有一个企业(至少在Places数据库中),那么这很简单。但是,某些地址有多个商家,在Google地图上搜索这些地址时,它会提供“在此位置”的结果:

在这个位置示例 image description

我们是否有办法通过API返回这些“在此位置结果”,或者进入它们以返回Place数据?

2 个答案:

答案 0 :(得分:0)

这似乎是为了#B; BNZ"和#34; RSM"在您的屏幕截图中:

https://maps.googleapis.com/maps/api/place/textsearch/json?query=businesses+near+86+Highbrook+Dr,+East+Tamaki,+Auckland+2013&radius=100&key=[Your Key]

尝试一般使用radius=[in meters],这里是Google API的文本搜索终端的文档:

https://developers.google.com/places/web-service/search#TextSearchRequests

要查找屏幕截图中的其他商家,我从第一个查询的结果中检索了地理编码的地址(纬度/经度)(仅包含地址),然后在“附近的搜索”端点中使用该地址的值。位置参数:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-36.9397743,174.8685493&radius=100&key=[Your密钥]

这是“附近搜索”的文档(不幸的是,它似乎没有获取位置地址,也不接受查询参数): https://developers.google.com/places/web-service/search#PlaceSearchRequests

注意:我还在type=car_dealer&radius=1000查询中指定了textsearch,其中只包含地址(已移除"#34;附近的商家)和"福特"没有出现。因此,在“附近搜索”和“文本搜索”之间可能存在不同的数据库索引。

答案 1 :(得分:0)

有一个开源nuget called GuigleCore,其功能与Google Map的“这里有什么”非常相似。您可以致电:

var place = await googlePlacesApi.GetExactPlaceByAddress(_client, "123 Street, Suburb A");

OR

var place = await googlePlacesApi.GetExactPlaceByLocation(_client, -11.111, 11.111);

在大多数情况下(如果并非总是如此),它会返回与Google Map的“这里有什么”功能相同的位置。 只需使用您的Google Api密钥实例化即可。也可以使用其界面进行注册/注入。

var googlePlacesApi = new GooglePlacesApi("GoogleApiKey");

您可以使用nuget命令 Install-Package GuigleCore

进行安装