【问题标题】:Android Google Maps Api V2, GPS locationlistener and geocodeAndroid Google Maps Api V2、GPS 位置监听器和地理编码
【发布时间】:2012-12-19 22:36:27
【问题描述】:

注意:这个问题与 MapView、MapViewActivity 或 GeoPoints 无关,该 api 已被弃用

你好,

我在使用 android google maps api v2 时遇到问题。具体来说,我想确保地图在我的位置移动时平移,并且我想监听这些事件,以便获取该位置的字符串地址以及经度和纬度。

我现在肯定会得到这个,但我想听听变化。

我的问题是我不确定新地图的作用以及LocationSource 对象将为我做什么。示例应用程序根本不使用 GPS。

我不确定是否需要实现 LocationListener 来访问 GPS 硬件。

我需要能够平移地图并即时获取地理编码地址(通过在检测到地图移动后运行地理编码方法)

是否有人使用 android google maps v2 进行有效的地理编码?我目前是:

a) 不确定 LocationSource 是否真的在监听移动变化

b) 如何获取我的地图对象的移动变化以更新屏幕、坐标和运行地理编码

【问题讨论】:

  • 提醒一下:Google 添加了OnMyLocationChangeListener,当检测到位置变化时会调用它。

标签: android geolocation gps locationlistener google-maps-android-api-2


【解决方案1】:

a) 不确定 LocationSource 是否真的在监听移动变化

如果您使用setLocationSource()

是位置的来源。您将在您的 activate() 方法(LocationSource 接口的一部分)中传递一个 OnLocationChangedListener。当您获得新的位置修复时,无论您选择何种方式(例如 GPS),您都需要在该 OnLocationChangedListener 上致电 onLocationChanged()

b) 如何获取我的地图对象的移动变化以更新屏幕、坐标和运行地理编码

通过在该OnLocationChangedListener 上调用onLocationChanged()GoogleMap 将被告知新位置,如果该位置当前在地图上可见,则将标记它,假设您在该位置上调用了setMyLocationEnabled(true) GoogleMap。或者,您可以更新Marker 的位置以反映用户自己的位置。

地理编码完全独立于GoogleMap。当您通过您选择的任何方式获取位置修复时,除了更新地图之外,您还可以运行您的地理编码逻辑。

【讨论】:

  • 是的,但我希望您详细说明地理编码。 api v2 是否使用更好的地理编码对象进行了更新,还是我仍然需要在线向 google maps api v3 发送休息呼叫
  • @CQM:地理编码独立于 Maps V1(SDK 插件)或 Maps V2(播放服务)Android API。 Geocoder is part of Android itself,因此只会随着 Android 操作系统版本的变化而变化。 Geocoder API 自 API Level 9 起就没有改变,我不知道它的实现是否改变了,更不用说改进了抱歉!
  • 当我只使用myMap.setMyLocation(true) 时,我得到了一个位置标记,但是当我将它与myMap.setLocationSource(mLocationSourceObject) 结合起来时,我没有得到一个位置标记。到目前为止,我一直在挠头
  • @CQM:嗯,这是我正在使用的setLocationSource() 的工作示例:github.com/commonsguy/cw-omnibus/tree/master/MapsV2/Location
  • 谢谢,我现在正在试验它,从这个地图演示来看..你经常在曼哈顿吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 2013-03-20
  • 2015-12-11
  • 1970-01-01
  • 2013-12-18
相关资源
最近更新 更多