按社区搜索 Google 地理编码 API?

Search Google Geocoding API by Neighborhood?

通常,当用户按特定位置搜索商家时,他们可能会在不知不觉中在搜索框中输入社区名称,以为这是一个城市,但由于法律上它只是一个社区 Google API会将其映射到实际的市中心。问题在于,在大城市中,这两个位置(邻里中心和市中心)可能相距很远。例如,如果我搜索 Porter Ranch, CA, Google API returns Los Angeles, CA,但这两个位置(根据 latitude/longitude 计算)相距约 23 英里,显然不是用户想要看到的。

有趣的是,Google 地图知道 Porter Ranch,如果我搜索 "Porter Ranch" 它会放大 Porter Ranch。而且,如果我在 Porter Ranch 中搜索特定地址,结果列为 123 Main St, Porter Ranch, CA,而不是 Los Angeles, CA。

所以我的问题是,有没有办法告诉 Google API 到 社区的 return latitude/longitude ,比如Porter Ranch,而不是city?我希望有一种方法可以用 API 做到这一点,因为它可以在地图中使用。

编辑:

Java 示例:

GeoApiContext context = new GeoApiContext().setApiKey("xyz");
results = GeoCodingApi.geocode(context, "Porter Ranch, CA").await;

当我为 'Porter Ranch, CA' 执行地理编码请求时,我可以看到来自响应的坐标 (34.2822134,-118.5506158) 很好地集中在这个街区的中心。

https://maps.googleapis.com/maps/api/geocode/json?address=Porter%20Ranch%2C%20CA&key=YOUR_API_KEY

看看我的截图

或者自己在Geocoder工具中查看:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3DPorter%2520Ranch%252C%2520CA

因此,我看不出标记位置有任何问题,但是,格式化的地址确实不包含社区名称。

我能想到的唯一解决方法是使用来自第一个请求的邻域和坐标类型执行反向地理编码:

https://maps.googleapis.com/maps/api/geocode/json?latlng=34.2822134%2C-118.5506158&result_type=neighborhood&key=YOUR_API_KEY

在这种情况下,您将在格式化的地址字符串中获得一个社区名称,如下面的屏幕截图所示:

希望对您有所帮助!