百度地图之自定义绘制功能(二)
ts[2] = pt3;
lineGeometry.setPolyLine(linePoints);
// 设定样式
Symbol lineSymbol = new Symbol();
Symbol.Color lineColor = lineSymbol.new Color();
lineColor.red = 255;
lineColor.green = 0;
lineColor.blue = 0;
lineColor.alpha = 255;
lineSymbol.setLineSymbol(lineColor, 10);
// 生成Graphic对象
Graphic lineGraphic = new Graphic(lineGeometry, lineSymbol);
return lineGraphic;
}
/**
* 绘制多边形,该多边形随地图状态变化
*
* @return 多边形对象
*/
public Graphic drawPolygon() {
double mLat = 39.93923;
double mLon = 116.357428;
int lat = (int) (mLat * 1E6);
int lon = (int) (mLon * 1E6);
GeoPoint pt1 = new GeoPoint(lat, lon);
mLat = 39.91923;
mLon = 116.327428;
lat = (int) (mLat * 1E6);
lon = (int) (mLon * 1E6);
GeoPoint pt2 = new GeoPoint(lat, lon);
mLat = 39.89923;
mLon = 116.347428;
lat = (int) (mLat * 1E6);
lon = (int) (mLon * 1E6);
GeoPoint pt3 = new GeoPoint(lat, lon);
mLat = 39.89923;
mLon = 116.367428;
lat = (int) (mLat * 1E6);
lon = (int) (mLon * 1E6);
GeoPoint pt4 = new GeoPoint(lat, lon);
mLat = 39.91923;
mLon = 116.387428;
lat = (int) (mLat * 1E6);
lon = (int) (mLon * 1E6);
GeoPoint pt5 = new GeoPoint(lat, lon);
// 构建多边形
Geometry polygonGeometry = new Geometry();
// 设置多边形坐标
GeoPoint[] polygonPoints = new GeoPoint[5];
polygonPoints[0] = pt1;
polygonPoints[1] = pt2;
polygonPoints[2] = pt3;
polygonPoints[3] = pt4;
polygonPoints[4] = pt5;
polygonGeometry.setPolygon(polygonPoints);
// 设置多边形样式
Symbol polygonSymbol = new Symbol();
Symbol.Color polygonColor = polygonSymbol.new Color();
polygonColor.red = 0;
polygonColor.green = 0;
polygonColor.blue = 255;
polygonColor.alpha = 126;
polygonSymbol.setSurface(polygonColor, 1, 5);
// 生成Graphic对象
Graphic polygonGraphic = new Graphic(polygonGeometry, polygonSymbol);
return polygonGraphic;
}
/**
* 绘制单点,该点状态不随地图状态变化而变化
*
* @return 点对象
*/
public Graphic drawPoint() {
double mLat = 39.98923;
double mLon = 116.397428;
int lat = (int) (mLat * 1E6);
int lon = (int) (mLon * 1E6);
GeoPoint pt1 = new GeoPoint(lat, lon);
// 构建点
Geometry pointGeometry = new Geometry();
// 设置坐标
pointGeometry.setPoint(pt1, 10);
// 设定样式
Symbol pointSymbol = new Symbol();
Symbol.Color pointColor = pointSymbol.new Color();
pointColor.red = 0;
pointColor.green = 126;
pointColor.blue = 255;
pointColor.alpha = 255;
pointSymbol.setPointSymbol(pointColor);
// 生成Graphic对象
Graphic pointGraphic = new Graphic(pointGeometry, pointSymbol);
return pointGraphic;
}
/**
* 绘制圆,该圆随地图状态变化
*
* @return 圆对象
*/
public Graphic drawCircle() {
double mLat = 39.90923;
double mLon = 116.447428;
int lat = (int) (mLat * 1E6);
int lon = (int) (mLon * 1E6);
GeoPoint pt1 = new GeoPoint(lat, lon);
// 构建圆
Geometry circleGeometry = new Geometry();
// 设置圆中心点坐标和半径
circleGeometry.setCircle(pt1, 2500);
// 设置样式
Symbol circleSymbol = new Symbol();
Symbol.Color circleColor = circleSymbol.new Color();
circleColor.red = 0;
circleColor.green = 255;
circleColor.blue = 0;
circleColor.alpha = 126;
circleSymbol.setSurface(circleColor, 1, 3);
// 生成Graphic对象
Graphic circleGraphic = new Graphic(circleGeometry, circleSymbol);
return circleGraphic;
}
/**
* 绘制文字,该文字随地图变化有透视效果
*
* @return 文字对象
*/
public TextItem drawText() {
double mLat = 39.86923;
double mLon = 116.397428;
int lat = (int) (mLat * 1