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 для поиска вместо геокодирования.