IOS 手绘地图导航
手绘地图导航
第三方库
1)支持在手绘图上标记、缩放
2)支持在单张图片
3)支持瓦片小图片
思路
前提:美工已经切好手绘图,并告知我们当前的缩放级别。
1)确定好手绘图左上角点在百度地图上的经纬度坐标。
2)将百度地图经纬度坐标转换成平面坐标
/** *将经纬度坐标转换为投影后的直角地理坐标 *@param coordinate 待转换的经纬度坐标 *@return 转换后的直角地理坐标 */ UIKIT_EXTERN BMKMapPoint BMKMapPointForCoordinate(CLLocationCoordinate2D coordinate); |
3)把要标记在手绘图上的点的百度坐标获取到
4)把上述经纬度坐标转换成平面坐标并减去左上角的平面坐标的差值,即为上述经纬度所对应的手绘图坐标。
5)在手绘图上添加标记:
标记
NAPinAnnotation *melbourne = [NAPinAnnotation annotationWithPoint:[self locationCoordToCgPoint:CLLocationCoordinate2DMake(30.549436, 114.311086)]]; melbourne.title = @ "鹅池" ; melbourne.subtitle = @ "I have a subtitle" ; melbourne.color = NAPinColorRed; [mapView addAnnotation:melbourne animated:NO]; - (CGPoint)locationCoordToCgPoint:(CLLocationCoordinate2D)coor { BMKMapPoint point = BMKMapPointForCoordinate(coor); // rate根据具体情况得到。 // leftTopCoor为手绘图左上角点的百度地图平面坐标。 return CGPointMake((point.x - leftTopCoor.x) * rate, (point.y - leftTopCoor.y) * rate); } |
6)如果不需要显示当前位置信息,则可以拿到手绘图后直接在图片上测量出平面坐标然后标记。