/** * 绘制文字,该文字随地图变化有透视效果 * @return 文字对象 */ public TextItem DrawText() { double mLat = 39.86923; double mLon = 116.397428; int lat = (int)(mLat * 1E6); int lon = (int)(mLon * 1E6); //构建文字 TextItem item = new TextItem(); //设置文字位置 item.Pt = new GeoPoint(lat, lon); //设置文件内容 item.Text = "百度地图SDK"; //设文字大小 item.FontSize = 40; Symbol symbol = new Symbol(); Symbol.Color bgColor = new Com.Baidu.Mapapi.Map.Symbol.Color(symbol); //设置文字背景色 bgColor.Red = 0; bgColor.Blue = 0; bgColor.Green = 255; bgColor.Alpha = 50; Symbol.Color fontColor = new Com.Baidu.Mapapi.Map.Symbol.Color(symbol); //设置文字着色 fontColor.Alpha = 255; fontColor.Red = 0; fontColor.Green = 0; fontColor.Blue = 255; //设置对齐方式 item.Align = TextItem.AlignCenter; //设置文字颜色和背景颜色 item.FontColor = fontColor; item.BgColor = bgColor; return item; }
/** * 绘制圆,该圆随地图状态变化 * @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 = new Com.Baidu.Mapapi.Map.Symbol.Color(circleSymbol); circleColor.Red = 0; circleColor.Green = 255; circleColor.Blue = 0; circleColor.Alpha = 126; circleSymbol.SetSurface(circleColor, 1, 3, new Com.Baidu.Mapapi.Map.Symbol.Stroke(3, new Com.Baidu.Mapapi.Map.Symbol.Color(circleSymbol, Android.Graphics.Color.ParseColor("#FFFF0000").ToArgb()))); //生成Graphic对象 Graphic circleGraphic = new Graphic(circleGeometry, circleSymbol); return circleGraphic; }
/** * 绘制单点,该点状态不随地图状态变化而变化 * @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 = new Com.Baidu.Mapapi.Map.Symbol.Color(pointSymbol); 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 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 = new Com.Baidu.Mapapi.Map.Symbol.Color(polygonSymbol); 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 DrawArc() { double mLat = 39.97923; double mLon = 116.357428; int lat = (int)(mLat * 1E6); int lon = (int)(mLon * 1E6); GeoPoint pt1 = new GeoPoint(lat, lon); mLat = 39.94923; mLon = 116.397428; lat = (int)(mLat * 1E6); lon = (int)(mLon * 1E6); GeoPoint pt2 = new GeoPoint(lat, lon); mLat = 39.97923; mLon = 116.437428; lat = (int)(mLat * 1E6); lon = (int)(mLon * 1E6); GeoPoint pt3 = new GeoPoint(lat, lon); Geometry arcGeometry = new Geometry(); arcGeometry.SetArc(pt1, pt3, pt2); // 设定样式 Symbol arcSymbol = new Symbol(); Symbol.Color arcColor = new Com.Baidu.Mapapi.Map.Symbol.Color(arcSymbol); arcColor.Red = 255; arcColor.Green = 0; arcColor.Blue = 225; arcColor.Alpha = 255; arcSymbol.SetLineSymbol(arcColor, 4); // 生成Graphic对象 Graphic arcGraphic = new Graphic(arcGeometry, arcSymbol); return arcGraphic; }
/** * 绘制折线,该折线状态随地图状态变化 * @return 折线对象 */ public Graphic DrawLine() { double mLat = 39.97923; double mLon = 116.357428; int lat = (int)(mLat * 1E6); int lon = (int)(mLon * 1E6); GeoPoint pt1 = new GeoPoint(lat, lon); mLat = 39.94923; mLon = 116.397428; lat = (int)(mLat * 1E6); lon = (int)(mLon * 1E6); GeoPoint pt2 = new GeoPoint(lat, lon); mLat = 39.97923; mLon = 116.437428; lat = (int)(mLat * 1E6); lon = (int)(mLon * 1E6); GeoPoint pt3 = new GeoPoint(lat, lon); //构建线 Geometry lineGeometry = new Geometry(); //设定折线点坐标 GeoPoint[] linePoints = new GeoPoint[3]; linePoints[0] = pt1; linePoints[1] = pt2; linePoints[2] = pt3; lineGeometry.SetPolyLine(linePoints); //设定样式 Symbol lineSymbol = new Symbol(); Symbol.Color lineColor = new Com.Baidu.Mapapi.Map.Symbol.Color(lineSymbol); 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; }