正如标题所说,我有一系列标记,我已经填充了我想要的标记。但是,地图不会显示已添加到阵列的标记。我不确定错误是什么,虽然我怀疑我的数组没有正确填充。
这里我尝试为每个单独的参数填充三个数组(对于上下文,outputText字符串已更新并正确显示所有信息,因此我不知道为什么其他三个数组会出现问题:
try {
String jsonStr = getJS;
JSONObject jsonObj = new JSONObject(jsonStr);
JSONArray Ja = jsonObj.getJSONArray("Users");
int count = 0;
outputText = "\tNames\t" + "\tLongitude\t" + "\tLatitude\n";
while (count < Ja.length()) {
JSONObject ja = Ja.getJSONObject(count);
count++;
outputText += "\t" + ja.getString("name") + "\t\t" + ja.getString("lon") + "\t\t" + ja.getString("lat") + "\n";
String name = ja.getString("name").trim();
names.add(name);
String lat = ja.getString("lat").trim();
Double dLat = Double.parseDouble(lat);
latitudes.add(dLat);
String lon = ja.getString("lon").trim();
Double dLon = Double.parseDouble(lon);
longitudes.add(dLon);
}
然后我在另一个活动中使用这三个数组来尝试向Google地图添加一系列标记:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng uni = new LatLng(51.2985, 1.070884);
m1 = mMap.addMarker(new MarkerOptions().position(uni).title("University senate building").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ROSE)));
List<Marker> markers = new ArrayList<>();
for(int i = 0;i<lf.getNames().size();i++){
String myName = lf.getNames().get(i);
Marker marker = mMap.addMarker(new MarkerOptions().position(new LatLng(lf.getLatitudes().get(i),lf.getLongitudes().get(i))).title(myName).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN)));
markers.add(marker);
}
mMap.moveCamera(CameraUpdateFactory.newLatLng(uni));
mMap.animateCamera(CameraUpdateFactory.zoomTo(18));
}
应用程序运行时没有任何错误或警告,但除了最初的&#39; uni之外没有显示任何标记。我手动定义的那个。
我很困惑,因为我一直想弄清楚我出错了一段时间,而我似乎无法找到它。提前谢谢。