【问题标题】:Places autocomplete for android devices适用于 Android 设备的地点自动完成功能
【发布时间】:2011-12-13 02:02:54
【问题描述】:
我需要街头风和商业的自动完成功能。位置包中的 geoCoder 没有给我我需要的东西。
我检查了 google labs Places JSON API,但该请求的响应只给了你地点名称和 ID 而不是纬度,因为你需要一个额外的响应,这可能会使在地图上显示自动完成的位置变慢。
是否有任何其他 api 响应应该包含 Boh 名称和 last\long (考虑到我不会对请求本身有必要的 lat long,因为我可能正在寻找一个非常偏远的地方与我当前的位置无关。
【问题讨论】:
标签:
android
google-maps-api-3
geolocation
【解决方案1】:
这是我通过大量搜索找到的:
基本上,来自 google 的场所 API 的 JSON API 有两个功能,一个用于搜索位置,另一个用于自动完成,两者都隐藏在 PLACES API 下的 LABS 代码中。
为了让它值得:
- 实现某种连接池或请求\响应池
如果您想取消它,有几个请求可供您使用
中间或完全杀死它,您必须拥有这种
队列。 LWUIT IO 可以作为一个很好的起点。
- 当用户在 EditText 中键入文本时,使用 TextWatcher 发送自动完成请求,如果之前的请求尚未到达,则将其终止并在 ListView 中显示结果,以便用户选择一个选项。
- 在您的布局中还应该有一个搜索按钮。如果用户从刚刚放入 EditText 的列表中选择了一个自动完成项(确保在执行此操作时关闭 textWatcher,然后再将其重新打开!),如果用户按下搜索执行搜索 JSON 请求并显示结果在不同的 ListView 中。
这几乎是 Javascript API 以更方便的方式为您提供的。
您始终可以将 WebView 与 maps api java 脚本和地图一起使用,并使用 android JavaScriptInterfaces 将回调传递给 WebView JS。