我有两个名为lat2 []和lon2 []的double值数组。我在那里存储了特定的lattitude和longtitude值。我可以将这些值作为简单的双值。我的问题是我怎样才能找到阵列中是否存在这两个双打(以检查单击哪个标记)。这是我到目前为止所做的,但似乎没有效果:
@Override
public boolean onMarkerClick(Marker marker) {
markerLatLng = marker.getPosition();
markerLat = markerLatLng.latitude;
markerLng = markerLatLng.longitude;
for (int i = 0; i < lat2.length; i++) {
if (markerLat == lon2[i]) {
for (int j = 0; j < lon2.length; j++) {
if (markerLng == lon2[j]) {
String title = marker.getTitle();
Log.e("TAG", " " + title);
}
}
}
}
return true;
}
答案 0 :(得分:0)
如果我理解你的数据结构,你的for循环可能存在问题。
如果将纬度和经度存储在两个数组中,我想像位置n中的一个点由经度[n]和纬度[n]定义。
如果您在此处存储积分的方式是您需要更新代码的方式:
@Override
public boolean onMarkerClick(Marker marker) {
int markerLat = marker.getPosition().latitude;
int markerLng = marker.getPosition().longitude;
for (int i = 0; i < lat2.length; i++) {
if (markerLat == lat2[i] && markerLng == lon2[j]) {
String title = marker.getTitle();
Log.e("TAG", " " + title);
}
}
return true;
}
请不要使用全局变量。我编辑了你的代码来定义方法的本地标记markerLat和markerLng(我不知道int是否是正确的类型)。
答案 1 :(得分:0)
从lat2,log2数组创建一个列表,例如ArrayList,并检查数字是否包含:
List lat = new ArrayList(lat2);
List lon = new ArrayList(lon2);
if (lat.contains(markerLat) && lon.contains(markerLng)){
String title = marker.getTitle();
Log.e("TAG", " " + title);
}