GeoCoder getFromLocation 地址从不包含公司名称

GeoCoder getFromLocation address never contains Business name

我正在尝试对从标记检索到的 LatLng 进行地理编码以获取地址。我很容易获得街道地址,但 getFromLocation() 编辑的地址 return 从不包含公司名称(例如 Tim Hortons)。我知道问题不在于坐标,因为当我 return 使用 "getFromLocationName()" 而在我的代码的不同部分产生相同的结果时,我得到了友好的名称。我看不出为什么 getFromLocation() 的 return 应该像这样不同于 getFromLocationName() 的

相关代码如下:

private String holderAddress;
...
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker) {
        getAddress(marker.getPosition());
...
private void getAddress(LatLng latLng){
    Geocoder reverseGeo = new Geocoder(this, Locale.getDefault());
    Address processAddress = null;
    try {
        processAddress = reverseGeo.getFromLocation(latLng.latitude,
                latLng.longitude, 1).get(0);

    }catch(Exception e){
        Log.v("Reverse Geocode failed", e.getMessage());
    }

    if (processAddress != null) {
        holderAddress = processAddress.getAddressLine(0);
    } else {
        holderAddress = "(" + latLng.latitude + "," + latLng.longitude + ")";
    }
}

我已尝试检索多个结果并读取所有地址行以及地图项名称。似乎 "getFromLocation()" 从来没有 return 使用公司名称,而 "getFromLocationName()" 总是设法获取友好名称。

如果您能深入了解我为什么会得到此结果或对可能的解决方法提出建议,我们将不胜感激。

谢谢。

我得出结论,地理编码对于实时地点查找来说根本不可行。虽然有一个 getFeatureName() 字段,但它似乎只 return 任何对精确 GPS 坐标有用的东西,所以放下一个图钉几乎永远不会产生有用的特征名称。

我已改用 Google Places API 来查找公司名称,为了保持一致性,我现在还使用 Places API 的附近搜索进行搜索而不是地理编码.