#android #mapbox #reverse-geocoding
#Android #mapbox #обратное геокодирование
Вопрос:
Я пытаюсь пример обратного геокодирования на mapbox
Все работает нормально. Но проблема в том, что когда я заменяю свое текущее местоположение, оно не возвращает результат. Я думаю, что в mapbox не так много данных о моем регионе (я во Вьетнаме). Есть ли возможность добавить мои собственные места, предполагающие, что у меня есть набор данных с координатами и адресом
Мой код:
mapboxGeocoding = MapboxGeocoding.builder()
.accessToken(getString(R.string.mapbox_access_token))
.query(Point.fromLngLat(106.799142,10.875838))
.geocodingTypes(GeocodingCriteria.TYPE_ADDRESS)
.build();;
mapboxGeocoding.enqueueCall(new Callback<GeocodingResponse>() {
@Override
public void onResponse(Call<GeocodingResponse> call, Response<GeocodingResponse> response) {
List<CarmenFeature> results = response.body().features();
if (results.size() > 0) {
// Log the first results Point.
//Point firstResultPoint = results.get(0).center();
String country=results.get(0).placeName();
Log.d("Geocoding",country);
} else {
// No result for your request were found.
Toast.makeText(getApplicationContext(), "onResponse: No result found", Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<GeocodingResponse> call, Throwable throwable) {
throwable.printStackTrace();
}
});
}
@Override
protected void onDestroy(){
super.onDestroy();
mapboxGeocoding.cancelCall();
}
Ответ №1:
В настоящее время нет способа добавить пользовательские POI к данным, использующим API геокодирования, но обходным путем является использование API Tilequery. Этот API извлекает объекты из векторных плиток на основе близости к определенной географической координате. Вы можете имитировать функциональность обратного геокодирования с помощью пользовательских POI с помощью следующего рабочего процесса:
- Создайте набор листов, содержащий ваши пользовательские POI. То есть загружайте свои данные в виде набора листов.
- Извлеките географические координаты точки, которую вы хотели бы использовать для обратного геокодирования.
- Выполните вызов API Tilequery, где radius равен 0, tileset_id — это идентификатор набора листов, созданного вами на шаге 1, а {lon}, {lat} — это долгота и широта, полученные на шаге 2. Более подробную информацию о каждом из этих параметров можно найти здесь .
Я бы рекомендовал поработать с этим руководством по созданию средства поиска здоровой пищи с помощью Tilequery API, чтобы получить больше информации о том, как API можно использовать для обратного геокодирования с пользовательскими POI. Игровая площадка Tilequery API также является отличным ресурсом для интерактивных экспериментов.
Дайте мне знать, если что-то неясно!
Комментарии:
1. спасибо за ваш ответ, я попробую сейчас. И приложение tut в некотором роде очень похоже на мое приложение