问题描述
我正在尝试使用 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,因为您只想获得最高结果。
总结;
- 使用 AutoCompleteTextView 的 addTextChangedListener 事件从自动建议服务中检索建议。
- 使用 AutoCompleteTextView 的 setOnItemClickListener 事件检索用户的选择,并将
formattedAddress
值传递给地理编码服务。 - 使用地理编码器响应中的坐标创建标记并添加到地图中。