Как приложение может показать пользователям больше информации о POI

С ростом популярности мобильного интернета мобильные приложения становятся неотъемлемой частью нашей повседневной жизни и предоставляют все больше разнообразных функций, которые приносят пользователям множество преимуществ. Одной из таких функций является поиск в приложении точек интереса (POI) или мест, таких как банки и рестораны.

Когда пользователь ищет точку интереса в приложении, помимо общей информации о ней, такой как название и местоположение, он также ожидает, что ему будут показаны другие важные детали. Например, при поиске POI в приложении для вызова такси пользователь обычно ожидает, что приложение покажет как искомый POI, так и другие близлежащие POI, чтобы пользователь мог выбрать наиболее удобный пункт приема и высадки. При поиске отделения банка в мобильном банковском приложении пользователь обычно хочет, чтобы приложение показывало как искомое отделение банка, так и близлежащие POI аналогичного типа и их детали, такие как часы работы, номера телефонов и близлежащие дороги.

Однако отображение информации о POI в приложении обычно является сложной задачей для разработчиков приложений, не связанных с картами, поскольку для этого требуется большое количество подробных данных о POI, которые, как правило, трудно собрать большинству разработчиков приложений. Поэтому было бы здорово, если бы существовала служба, которую приложение могло бы использовать для предоставления пользователям информации о POI (например, часы работы и рейтинг), когда они ищут различные типы POI (например, отели, рестораны и живописные места) в приложении.

К счастью, HMS Core Site Kit предоставляет универсальный сервис поиска POI, который может похвастаться более чем 260 миллионами POI в более чем 200 странах и регионах по всему миру. Кроме того, сервис поддерживает более 70 языков, что позволяет пользователям искать места на родном языке. Функция поиска деталей места в комплекте позволяет приложению получать информацию о POI, такую как название, адрес, долгота и широта, на основе уникального идентификатора POI. Например, пользователь может искать ближайшие отделения банка в мобильном банковском приложении и просматривать информацию о каждом отделении, например, часы работы и номера телефонов, или искать местоположение живописного места и просматривать информацию о ближайших отелях и прогнозы погоды в приложении для путешественников, благодаря функции детального поиска места. Функция детального поиска места может быть использована даже в играх на основе местоположения, которые могут использовать эту функцию для отображения внутриигровых задач и рейтингов других игроков в точке интереса, когда игрок ищет эту точку интереса в игре.

Процесс интеграции этого набора очень прост, что я продемонстрирую ниже.

Демонстрация

Приведенный ниже скриншот может дать вам представление о функции детального поиска места.

Процедура интеграции

1 Подготовка

Прежде чем приступить к работе, вам необходимо выполнить некоторые подготовительные действия, такие как настройка информации о вашем приложении в AppGallery Connect, интеграция SDK сайта и настройка конфигурационного файла обфускации.

Если вы используете Android Studio, вы можете интегрировать SDK в свой проект через репозиторий Maven. Цель настройки конфигурационного файла обфускации — предотвратить обфускацию SDK.

Вы можете следовать инструкциям здесь, чтобы сделать соответствующие приготовления. В этой статье я не буду описывать шаги подготовки.

2 Разработка детального поиска места

После проведения соответствующих подготовительных работ вам необходимо реализовать функцию поиска деталей места для получения информации о POI. Процесс заключается в следующем:

i. Объявите объект SearchService и используйте SearchServiceFactory для его создания.

При создании объекта SearchService необходимо передать параметр Context и ключ API. Если вы хотите отобразить мастер обновления, когда необходимо обновить HMS Core (APK), рекомендуется передать параметр Context типа Activity. Что касается ключа API, то он генерируется при создании приложения на сайте HUAWEI Developers. Обратите внимание, что ключ API необходимо закодировать с помощью метода URLEncoder.encode(«Your apiKey», «UTF-8»).

ii. Создайте объект DetailSearchRequest и задайте соответствующие параметры.

Этот объект будет использоваться в качестве тела запроса для поиска деталей POI. Соответствующие параметры следующие:

  • siteId: ID POI. Этот параметр является обязательным.

  • language: язык, на котором отображаются результаты поиска. Если язык не указан, будет использоваться английский, а если английский недоступен, будет использоваться местный язык.

  • children: указывает, следует ли возвращать информацию о дочерних узлах POI. Значение по умолчанию равно false, что означает, что информация о дочерних узлах не возвращается. Если этот параметр имеет значение true, будет возвращена вся информация о дочерних узлах POI.

iii. Создайте объект SearchResultListener для прослушивания результатов поиска.

iv. Используйте созданный объект SearchService для вызова метода detailSearch() и передайте в метод созданные объекты DetailSearchRequest и SearchResultListener.

v. Получите объект DetailSearchResponse с помощью созданного объекта SearchResultListener. Вы можете получить объект Site из объекта DetailSearchResponse, а затем разобрать его для получения результатов поиска.

Код примера выглядит следующим образом:

// Declare a SearchService object.
private SearchService searchService; 
// Create a SearchService instance. 
searchService = SearchServiceFactory.create(this, "
API key
");
// Create a request body.
DetailSearchRequest request = new DetailSearchRequest(); 
request.setSiteId("
C2B922CC4651907A1C463127836D3957
"); 
request.setLanguage("
fr
"); 
request.setChildren(
false
);
// Create a search result listener.
SearchResultListener<DetailSearchResponse> resultListener = new SearchResultListener<DetailSearchResponse>() { 
    // Return the search result when the search is successful.
    @Override 
    public void onSearchResult(DetailSearchResponse result) { 
        Site site;
        if (result == null || (site = result.getSite()) == null) { 
            return; 
        }
         Log.i("TAG", String.format("siteId: '%s', name: %srn", site.getSiteId(), site.getName())); 
    } 
    // Return the result code and description when a search exception occurs.
    @Override 
    public void onSearchError(SearchStatus status) { 
        Log.i("TAG", "Error : " + status.getErrorCode() + " " + status.getErrorMessage()); 
    } 
}; 
// Call the place detail search API.
searchService.detailSearch(request, resultListener);
Вход в полноэкранный режим Выход из полноэкранного режима

Теперь вы завершили процесс интеграции, и ваше приложение может показывать пользователям подробную информацию о POI, которые они ищут.

Заключение

Мобильные приложения стали неотъемлемой частью нашей повседневной жизни. Чтобы улучшить пользовательский опыт и предоставить пользователям более удобные возможности, мобильные приложения предоставляют все больше функций, таких как поиск POI.

При поиске POI в приложении, помимо общей информации, такой как название и местоположение POI, пользователи обычно ожидают, что им будет показана и другая информация, относящаяся к контексту, например, часы работы и похожие POI поблизости. Однако отображение подробной информации о POI в приложении может быть сложной задачей для разработчиков приложений, не связанных с картами, поскольку для этого требуется большое количество подробных данных о POI, которые обычно трудно собрать большинству разработчиков приложений.

В этой статье я показал, как я решил эту проблему с помощью функции поиска деталей места, которая позволяет моему приложению показывать пользователям детали POI. Весь процесс интеграции прост и экономически эффективен, и это эффективный способ показать пользователям детали POI.

Оцените статью
devanswers.ru
Добавить комментарий