绘制线和面
画线功能
为什么要在地图上画线?因为要把在地图上打点的标识连接起来,用以表明那些标识点是相关的一类标识点。 实现方法:得到一个画笔,得到相关的位置标识点,然后在相关的位置标识点之间画线。
(完整代码详见 SDKDemo 工程的 MBOverlayerController.m) // 线 // 模拟点 MBPoint polyline1 = {11617606,3971098}; MBPoint polyline2 = {11660287,3971098}; MBPoint polylineP[2]; polylineP[0] = polyline1; polylineP[1] = polyline2; // 创建MBPolylineOverlay MBPolylineOverlay *polylineLayer = [[MBPolylineOverlay alloc]initWithPoints:polylineP count:2 isClosed:NO]; // 设置宽度 [polylineLayer setWidth:20.0]; // 设置线条类型 [polylineLayer setStrokeStyle:MBStrokeStyle_11]; // 将MBPolylineOverlay添加到MBMapView [mapView addOverlay:polylineLayer];
画线功能展示效果:
画圆功能
为什么要在地图上画圈?因为要侧重的标识在地图上打点的标识点,用以凸显出你需要特别标识的标识点。 实现方法:得到一个画笔,得到相关的位置标识点,然后在相关的位置标识点上画圆。
(完整代码详见 SDKDemo 工程的 MBOverlayerController.m) // 圆 // 模拟点 MBPoint center = {11617606,3971098}; // 创建MBCircleOverlay,绘制一个以模拟点为圆心,半径为1500的实心圆 MBCircleOverlay *circleAreaOnly = [[MBCircleOverlay alloc]initWithCenter:center radius:1500.0]; // 设置style circleAreaOnly.style = MBCircleStyle_areaOnly; // 将MBCircleOverlay添加到MBMapView [mapView addOverlay:circleAreaOnly];
画圆功能展示效果:
画折线功能
为什么要在地图上画面?因为要侧重的标识在地图上的一片区域,用以凸显出你需要特别标识的区域。 实现方法:得到一个画笔,得到相关的位置标识点,然后将相关的位置标识点上闭合连线,并为此片区域着色后绘制成面。
(完整代码详见 SDKDemo 工程的 MBOverlayerController.m) // 模拟四个点 MBPoint point1 = {11637852,3986459}; MBPoint point2 = {11632209,3989693}; MBPoint point3 = {11631032,3999105}; MBPoint point4 = {11655760,3991267}; MBPoint polylineP[4]; polylineP[0] = point1; polylineP[1] = point2; polylineP[2] = point3; polylineP[3] = point4; // 创建MBPolylineOverlay,传入四个点,由这四个点绘制折线 MBPolylineOverlay *polylineLayer = [[MBPolylineOverlay alloc]initWithPoints:polylineP count:4 isClosed:NO]; // 设置线宽 [polylineLayer setWidth:20.0]; // 设置线条类型 [polylineLayer setStrokeStyle:strokeStyleIndex]; // 将MBPolylineOverlay添加到MBMapView [mapView addOverlay:polylineLayer];
画折线功能展示效果:
画多边形功能
为什么要在地图上画多边形?因为要把在地图上打点的标识连接起来,并设置为相应颜色,用以表明这些相关点标识出的一片区域。 实现方法:得到一个画笔,得到相关区域的一组位置标识点,然后将相关位置标识点之间连线,形成一个闭合区域。
完整代码详见 SDKDemo工程的 MBOverlayerController.m) // 模拟点 MBPoint point1 = {11637852,3986459}; MBPoint point2 = {11632209,3989693}; MBPoint point3 = {11631032,3999105}; MBPoint point4 = {11655760,3991267}; MBPoint polygonP[4]; polygonP[0] = point1; polygonP[1] = point2; polygonP[2] = point3; polygonP[3] = point4; // 创建MBPolygonOverlay,传入四个点,由这四个点绘制多边形 MBPolygonOverlay *polygon = [[MBPolygonOverlay alloc]initWithPoints:polygonP count:4]; // 将MBPolygonOverlay添加到MBMapView [mapView addOverlay:polygon];
地图上透明多边形的展示效果: