我有一个由 latLong 对象组成的数组列表,如下所示:
ArrayList < LatLng > latLngList = new ArrayList< LatLng >();
注意:LatLng 是一个具有 double 格式的纬度和经度值的对象,即纬度为 double 格式,经度为 double 格式
以下是存储在上述 latLngList 对象中的值:
Lat Long List:[lat/lng: (34.072516,-118.403609), lat/lng: (34.074227,-118.399248), lat/lng: (34.07304,-118.3995), lat/lng: (34.07304,-118.3995), lat/lng: (34.07304,-118.3995), lat/lng: (34.067856,-118.401485)]
现在,因为我在 android 中处理 google map v2,每当我点击一个特定的标记时,我都会得到纬度和经度位置,我会尝试将它与 latLngList 对象进行比较,以确定是否该对象存在于 latLngList 中。
我是按以下方式做的:
for(LatLng latLng : latLngList) {
marker.getPosition().equals(latLng); **Always returns false**
}
标记位置通过以下 latLng 对象返回给我:
lat/lng: (34.074226888265116,-118.39924816042185)
很明显,marker返回的经纬度对象有点长,比较失败。
是否有更好的方法来比较 latLng 对象?
最佳答案
更好的方法不是根据LatLng
来比较标记,而是根据Marker
的标识。由于某些奇怪的原因,Marker.getPosition()
没有返回完全相同的值。
如果您想将一些附加信息附加到每个 Marker
,我建议将所有标记存储在 List
或 Map
中。
或者,您可以在创建 Marker
后使用 Marker.getId()
,将其存储并稍后在 onMarkerClick
中进行比较。
编辑:
我也在 gmaps-api-issues 上报告过这个.
关于java - 比较谷歌地图 v2 android 中的两个 LatLng 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364871/