zoukankan      html  css  js  c++  java
  • IOS 手绘地图导航

    手绘地图导航

    第三方库

    NAMapKit,

    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)如果不需要显示当前位置信息,则可以拿到手绘图后直接在图片上测量出平面坐标然后标记。

  • 相关阅读:
    STL中关于map和set的四个问题?
    PHP之Zip扩展,解压缩文件,ZipArchive类
    PHP之音乐ID3扩展
    关于PHP执行超时的问题
    PHP中GD库安装
    PHP之输出控制 ob_start(),ob_get_contents(),ob_end_clean()
    PHP之xdebug详解
    PHP上传文件详解
    php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点
    深入研究php://input与php://output
  • 原文地址:https://www.cnblogs.com/java-koma/p/5282407.html
Copyright © 2011-2022 走看看