GeoCoder getFromLocation адрес никогда не содержит название компании

Я пытаюсь изменить GeoCode на LatLng, полученный от маркера, чтобы получить адрес. Я легко могу получить адрес улицы, но адрес, возвращаемый функцией getFromLocation(), никогда не содержит название компании (например, Тим Хортонс). Я знаю, что проблема не в координатах, потому что когда я возвращаю тот же результат в другой части моего кода, используя вместо этого "getFromLocationName()", я получаю понятное имя. Я не вижу причин, по которым возврат getFromLocation() должен отличаться от 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() никогда не возвращает название компании, в то время как getFromLocationName () всегда удается получить понятное имя.

Любое понимание того, почему я получаю этот результат или предложения о возможных обходных путях приветствуются.

Благодарю.

1 ответ

Решение

Я пришел к выводу, что геокодирование просто не подходит для поиска мест в реальном времени. Хотя есть поле getFeatureName(), кажется, что оно возвращает только что-то полезное для точных координат GPS, поэтому удаление булавки почти никогда не приведет к полезному имени fetaure.

Вместо этого я переключился на Google Places API для поиска названий компаний и для согласованности, теперь я также использую поиск по соседству из Places API для поиска вместо геокодирования.

Другие вопросы по тегам