如何在 Bing Maps SDK 中使用自动建议进行搜索?

问题描述

我正在尝试使用 Bing Maps SDK 来显示我在其中显示 SearchView 的地图。在此 SearchView 中,我想搜索位置,当我点击建议的位置时,在地图上的该位置放置一个标记

我以前使用过 HERE SDK,它有一个文档可以做到这一点,但在 Android 上我找不到关于这个 Bing Maps SDK 的任何文档。

我想在 Android 中实现:https://www.bing.com/api/maps/sdk/mapcontrol/isdk/autosuggestui#TS

解决方法

可以在此处找到有关 Bing 地图自动建议服务的文档:https://docs.microsoft.com/en-us/bingmaps/rest-services/autosuggest

您可以将其与 Android AutoCompleteTextView 结合使用来创建建议 UI。您将从上述服务异步检索建议。以下是一些不错的示例:

https://www.truiton.com/2018/06/android-autocompletetextview-suggestions-from-webservice-call/

How to implement autocompletetextview in Android Studio with an API call?

此服务不返回坐标。这样做是为了不将其用作 geocoding service 的替代品,从而使他们能够使其成为成本较低的服务。当用户选择建议时,您需要对地理编码器进行一次调用以获取 formattedAddress 的坐标,然后您可以使用它在地图上显示标记。我建议将结果限制设置为 1,因为您只想获得最高结果。

总结;

  1. 使用 AutoCompleteTextView 的 addTextChangedListener 事件从自动建议服务中检索建议。
  2. 使用 AutoCompleteTextView 的 setOnItemClickListener 事件检索用户的选择,并将 formattedAddress 值传递给地理编码服务。
  3. 使用地理编码器响应中的坐标创建标记并添加到地图中。