V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gavindexu
V2EX  ›  iOS

在整高德导航的快捷指令时遇到的问题

  •  
  •   gavindexu · 2021-03-25 06:03:25 +08:00 via iPhone · 1942 次点击
    这是一个创建于 1341 天前的主题,其中的信息可能已经有所发展或是发生改变。

    翻了挺多教程,都是给下面的 url,通过快捷指令,来直接实现目的地的导航。

    iosamap://navi?sourceApplication=applicationName&poiname=fangheng&poiid=BGVIS&lat=36.547901&lon=104.258354&dev=1&style=2

    但我从高德拾取的经纬度直接套回去,却出现了位置的偏移。

    (拾取经纬度 https://lbs.amap.com/console/show/picker

    ◡ ヽ(`Д´)ノ ┻━┻ 自己一点一点改了若干位的小数点,最后试到了想要的接近位置。

    但刚刚突然睡醒的我,在想为啥偷懒没看每个参数是干什么的……

    就去看了下开发指南,发现 dev 指示了“国测加密”。

    (开发指南: https://developer.amap.com/api/amap-mobile/guide/ios/navi

    把 1 改为 0 后,通过拾取器获得的经纬度就不会出现那个“偏移”。

    ╭(°A°`)╮ 可为啥经历了这一步偏移……? 使用谷歌或 CarPlay 的时候,偏移会不会也是受了这个影响?

    8 条回复    2021-03-25 10:03:59 +08:00
    wd
        1
    wd  
       2021-03-25 06:10:08 +08:00 via iPhone
    因为坐标其实有几个标准,可以搜搜火星坐标系..
    gavindexu
        2
    gavindexu  
    OP
       2021-03-25 06:14:01 +08:00 via iPhone
    @wd #1 有搜到这个坐标系。
    但在高德拾取的坐标,用来导航的时候还配置国测加密为 1,那是不是经过了 2 次偏移?
    imtyz001
        3
    imtyz001  
       2021-03-25 09:22:22 +08:00
    @gavindexu 我感觉是这样的:
    设某地 WGS84 坐标(x,y) GCJ02 坐标为(x1,y1)
    通过高的拾取的坐标应该已经是 GCJ02 坐标了(即(x1,y1))
    所以传入参数的时候应该是(x1,y1,dev=1)
    iPhone 指南针上的经纬度应该是 WGS84, 可以测试一下用这个坐标搭配 dev=0
    imtyz001
        4
    imtyz001  
       2021-03-25 09:27:56 +08:00
    #3 最后两行说反了, dev=0:lat 和 lon 是已经加密后的,不需要国测加密; dev=1:需要国测加密
    所以传入参数的时候应该是(x1,y1,dev=0)
    iPhone 指南针上的经纬度应该是 WGS84, 可以测试一下用这个坐标搭配 dev=1
    imtyz001
        5
    imtyz001  
       2021-03-25 09:30:09 +08:00
    @gavindexu #2
    所以应该如你所说 确实是经过了两次偏移
    gavindexu
        6
    gavindexu  
    OP
       2021-03-25 09:52:39 +08:00 via iPhone
    @imtyz001 #5
    刚刚有看开发手册,最后更新时间: 2020 年 12 月 15 日
    (・_・; 不知道会不会有高德的大佬看到
    如果这个属实的话,可以更新下手册里的示例
    imtyz001
        7
    imtyz001  
       2021-03-25 10:00:34 +08:00
    我自己测试了一下
    iPhone 指南针上显示的 WGS84 经纬度(x,y)搭配参数 dev=1
    和(x,y)通过转换工具( https://tool.lu/coordinate/) 后生成的 GCJ02 经纬度(x1,y1)搭配参数 dev=0
    导航效果是一样的
    imtyz001
        8
    imtyz001  
       2021-03-25 10:03:59 +08:00
    我感觉这个手册的示例没什么大问题 因为 iOS 上通过 CLLocationCoordinate2D( https://developer.apple.com/documentation/corelocation/cllocationcoordinate2d)获取定位信息时,获取的经纬度坐标系是 WGS84 地球坐标
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3355 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:39 · PVG 20:39 · LAX 04:39 · JFK 07:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.