1. 添加点和线元素的方法
private void animDraw(PointBean point) {
Point pnt = new Point(point.getX(), point.getY());
Graphic pointGraphic = new Graphic(pnt, new SimpleMarkerSymbol(
Color.RED, 8, STYLE.CIRCLE));
setgraphicsLayer.addGraphic(pointGraphic);
if (point.getId() == 0) {
Drawable source = getResources().getDrawable(R.drawable.icon_start);
Point mapPoint = new Point(pnt.getX(), pnt.getY() + 7.5);
Graphic picGraphic = new Graphic(mapPoint, new PictureMarkerSymbol(
source));
setgraphicsLayer.addGraphic(picGraphic);
} else if (point.getId() == myapplication.getCount() - 1) {
Drawable target = getResources().getDrawable(R.drawable.icon_stop);
Point mapPoint = new Point(pnt.getX(), pnt.getY() + 7.5);
Graphic picGraphic = new Graphic(mapPoint, new PictureMarkerSymbol(
target));
setgraphicsLayer.addGraphic(picGraphic);
}
if (point.getId() == 0) {
polyline.startPath(pnt);
} else {
polyline.lineTo(pnt);
Graphic lineGraphic = new Graphic(polyline, new SimpleLineSymbol(
Color.GREEN, 8, SimpleLineSymbol.STYLE.SOLID));
setgraphicsLayer.addGraphic(lineGraphic);
}
}
2. 地图投影坐标、屏幕坐标及经纬度坐标之间的转换
a. 屏幕坐标转换成投影坐标
public void onSingleTap(float x, float y) {
Point clickPoint = mapView.toMapPoint(x,y);
b. 投影坐标转换成经纬度
Point wgsPoint = (Point) GeometryEngine.project(clickPoint ,map.getSpatialReference(),SpatialReference.create(4326));
c. 经纬度转换成投影坐标
Point mapPoint = (Point) GeometryEngine.project(wgsPoint ,SpatialReference.create(4326),map.getSpatialReference());
d. 投影坐标转换成屏幕坐标
Point screenPoint = map.toScreenPoint(mapPoint);;