通过jsonparsing我再次解析所有字符串值我需要在mapview中显示纬度和经度..我需要将所有坐标存储在一个单独的数组中 有人请帮帮我.. 提前谢谢
答案 0 :(得分:1)
我不确定你的parseString的func是怎样的,我假设你可以获得2和lat的长字符串值。剩下的部分可以按照以下方式完成
String coordinates[] = {"...","..."};
double lat = Double.parseDouble(coordinates[0]);
double lng = Double.parseDouble(coordinates[1]);
p = new GeoPoint(
(int) (lat * 1E6),
(int) (lon * 1E6));
//mc is MapView object
mc.animateTo(p);
mc.setZoom(15);
mapView.invalidate();
要在地图上显示,您需要在res /文件夹中创建一个带位图精确点的叠加层
MarkerOverlay mark = new MarkerOverlay();
listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mark);
mapView.invalidate();
一类MapOverlay可以这样定义:
class MarkerOverlay extends com.google.android.maps.Overlay
{
//create a constructor here with p.x and p.y as parameters
@Override
public boolean draw(Canvas canvas, MapView mapView,
boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
Point screenPts = new Point();
Bitmap bmp = BitmapFactory.decodeResource(
getResources(), R.drawable.pushpin);
GeoPoint point = new GeoPoint(
(int) (p.x * 1E6),
(int) (p.y * 1E6));
mapView.getProjection().toPixels(point, screenPts);
canvas.drawBitmap(bmp, screenPts.x-16, screenPts.y-32, null);
canvas.drawText(parts[0],screenPts.x-16 , screenPts.y-40, new Paint());
}
}
}
return true;
}
}