Android 从json解析中获取坐标并在mapview中显示?
通过jsonparsing,我再次解析所有字符串值,我需要在mapview中显示纬度和经度。。我需要将所有坐标存储在一个单独的数组中 任何人都请帮帮我。。Android 从json解析中获取坐标并在mapview中显示?,android,Android,通过jsonparsing,我再次解析所有字符串值,我需要在mapview中显示纬度和经度。。我需要将所有坐标存储在一个单独的数组中 任何人都请帮帮我。。 提前感谢我不确定您的parseString函数如何,我假设您可以得到两个字符串值lat和long。其余部分可按以下步骤完成 String coordinates[] = {"...","..."}; double lat = Double.parseDouble(coordinates[0]);
提前感谢我不确定您的parseString函数如何,我假设您可以得到两个字符串值lat和long。其余部分可按以下步骤完成
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/folder中使用位图pinpoint创建一个覆盖
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;
}
}
我不确定parseString的函数如何,我假设可以得到2个字符串值lat和long。其余部分可按以下步骤完成
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/folder中使用位图pinpoint创建一个覆盖
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;
}
}
问题出在哪里?如果您得到字符串值,那么接下来该怎么办?问题出在哪里?如果你得到字符串值,那么下一步怎么办?不需要这个地质点=新的地质点((int)(p.x*1E6),(int)(p.y*1E6));可以直接在mapView.getProjection().toPixels(p,screenPts)中使用GeopPoint的p对象;不需要该地质点=新的地质点((int)(p.x*1E6),(int)(p.y*1E6));可以直接在mapView.getProjection().toPixels(p,screenPts)中使用GeopPoint的p对象;