让不同的用户latLng作为json对象,并使用该用户名在sqlite中存储和更新它,现在我想要检索用户的说明并将这些用户显示到map ..并在消息到达时更新他们的位置那个用户......怎么做
这是我的代码
JSONObject jsnobject = new JSONObject(Message);
JSONObject msg = jsnobject.getJSONObject("msg");
JSONObject header = msg.getJSONObject("Header");
clientID=header.getString("from");
JSONObject location = header.getJSONObject("Location");
LAT = location.getString("Lat");
LNG = location.getString("Long");
SPEED = location.getString("Speed");
} catch (JSONException e) {
e.printStackTrace();
}
// for(int i =0 ;i<abc;i++){
List<String> a= db.getID();
if(a.contains(clientID)){
db.update(clientID, LAT, LNG, SPEED);
}else{
db.insert(clientID, LAT, LNG, SPEED);
}
这就是放置标记的方式
List<String> a= db.getID();
for(int i=0;i<a.size();i++){
String id=a.get(i);
List<String> latllng= db.getLatLng(id);
latllng.toString();
String[] Latlng=latllng.toString().replace("[", "").replace("]", "").split(",");
double latitude = Double.parseDouble(Latlng[0]);
double longitude = Double.parseDouble(Latlng[1]);
googleMap.clear();
if (marker == null)
pos=new LatLng(latitude,longitude);
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
pos, 17));
marker = googleMap.addMarker(new MarkerOptions()
.position(pos));
marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.my_marker));
marker.setTitle(id);
pos = new LatLng(latitude, longitude);
animateMarker(marker, pos, hideMarker);
}
答案 0 :(得分:0)
像这样更新您的代码,它将起作用:
List<String> a = db.getID();
googleMap.clear();
for (int i = 0; i < a.size(); i++) {
String id = a.get(i);
List<String> latllng = db.getLatLng(id);
latllng.toString();
String[] Latlng = latllng.toString().replace("[", "")
.replace("]", "").split(",");
double latitude = Double.parseDouble(Latlng[0]);
double longitude = Double.parseDouble(Latlng[1]);
// googleMap.clear(); <<< comment out this code else all of your previous marker get cleared
if (marker == null)
pos = new LatLng(latitude, longitude);
// googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(pos, 17)); << you can not move map for each and every marker you are adding
marker = googleMap.addMarker(new MarkerOptions().position(pos));
marker.setIcon(BitmapDescriptorFactory
.fromResource(R.drawable.my_marker));
marker.setTitle(id);
pos = new LatLng(latitude, longitude);
animateMarker(marker, pos, hideMarker);
}