国行 iPhone 拍照,写入图片 Exif 中的 GPS 坐标是 GCJ-02,有没有办法使用 WGS84.
验证方法,拍张照片,找个 online exif data viewer(例如:https://jimpl.com/),拍照位置与网站中差个几百米.
图片中的坐标,在手机苹果地图, Google Maps 中和拍照位置一致(那就系统层面是 GCJ-02 ?)
修改手机地区,语言无效.
有解吗?
1
aphorism 104 天前
应该是没有办法,除非使用非中国地区发售的 iPhone 。
|
2
LaoChen 104 天前 1
又多了一个不买国行的理由
|
3
aphorism 104 天前 3
有几个细节需要进一步澄清:
1 、“拍照位置与网站中差个几百米”。这个网站的地图使用的是哪个数据源,是 Google Maps ,Bing Maps / Azure Maps 还是 OpenStreetMap ?上述地图服务对外提供的数据使用的都是非 GCJ - 02 坐标,因此会有个几百米的偏差。 2 、“图片中的坐标,在手机苹果地图, Google Maps 中和拍照位置一致”,这是因为 EXIF 中的数据确实是 GCJ-02 的,同时手机苹果地图、手机谷歌地图中的矢量图层都是 GCJ-02 坐标的,所以看起来跟正确位置是对的。特别需要注意的是手机版 Google Maps 应用对中国的矢量数据和影像数据进行了配准,因此 GCJ - 02 坐标也可以正常显示。而在 Web 版本的 Google Maps 中,影像数据的坐标系统是 EPSG:900913 或者 EPSG:4326 的,因此与 GCJ-02 系统的矢量数据会存在偏差。 3 、如果你需要在苹果手机上记录或导出真实的经纬度坐标,可以使用 MapMyRide 等记录轨迹的 App 来记录轨迹并转存下来,这些数据是真实地理坐标。 |
4
LaoChen 104 天前
|
5
aphorism 104 天前
@LaoChen
1 、问:如何判断一张照片的 EXIF 是 GCJ-02 坐标,还是 WGS84 坐标? 答:准确地回答是比较难判断,因为都是地理坐标,没有其他的元数据的话是分辨不出来的。但是有一个较简单的法则,将这个数据输入到 Web 版本的 Google Maps 中在影像图层中查看,如果显示的位置与拍摄的位置一致,则是 GPS/WGS84 坐标系统的,否则就是 GCJ-02 坐标系统的。其实 GCJ 模块是在应用层面的,而不是系统层面的。GPS 芯片所解算出来的数据是 GPS 坐标的,只有需要在中国的矢量地图上叠加显示的时候才变换到 GCJ-02 坐标系。一般而言,如果一个 App 没有为中国做特别处理,那么其记录的数据应当就是真实的 GPS 坐标。例如苹果手表即使是中国发售的版本,其记录的轨迹数据也是 GPS 坐标的。 2 、问:国行 iPhone 手机拿到海外用了,拍了当地的照片,还会有这个问题吗? 答:没有实际地试验过,不能完全确定答案。但从常理来讲应该不存在这个问题,如上所述。该 EXIF 信息应当是由苹果的相册应用写入照片文件的,而 GCJ-02 的规则应当只在中国生效,其目的是为了解决 GeoTag 信息在中国的地图数据上匹配失准问题的。从逻辑上说,在中国以外的地区,这个额外的规则应当是不生效的,否则 GeoTag 信息同样会与该地的地理数据匹配失准。其实可以谨慎地怀疑,即使在中国拍摄的照片,其 EXIF 信息中可能也存在真实的 GPS 数据,只是不是按照 GeoTag 的标准来存储的,这就只有苹果自己的开发人员才能知道了。 |
6
wushan 104 天前 2
|
7
10RR 104 天前 1
赞同楼上 @aphorism 的回答.
OP 图片挂了. 我去 https://jimpl.com/ 这个网站传了一张照片. 显示卫星地图时的定位是对的, 显示街道地图就偏差了大约 500 米. 这应该就是 WGS84 和 GCJ-02 坐标系偏移的距离 ? 不知道哪个是哪个. 感觉应该是卫星图使用 WGS84, 而普通街道地图使用 GCJ-02. 此前, 我用国行和外版的 iPhone 在同一地点分别拍了照片, 发现 Exif 里的坐标数值几乎是一样的, 偏差可能在 10 米之内. |
9
aphorism 103 天前 2
结合 @wushan @10RR 的回答,作一点更正说明:
1 、iPhone 无论是中国发售的版本还是美、日等地发售版本,其照片文件的 EXIF 信息中附带的 Geotag 数据均为 GPS 坐标,并非 GCJ-02 坐标。 2 、https://jimpl.com 网站使用的地图服务是 Google Maps ,而 Google Maps 的中国的矢量数据是 GCJ-02 坐标系统的,因此显示 GPS 坐标会出现匹配失准,切换到卫星影像就与实际位置没有偏差。 3 、以下列举了几个常见的地图网站与其中国区域数据所用坐标系统 (1) Google Maps Web 版,https://maps.google.com 中国区域的矢量数据为 GCJ-02 坐标,在中国区域的矢量地图上显示 GPS 坐标时会匹配失准,切换到卫星影像地图则匹配正确。显示世界其他地区地图时无此问题。 (2)Bing Maps Web 版,https://bing.com/maps 中国区域的矢量数据为 GCJ-02 坐标,在中国区域的矢量地图上显示 GPS 坐标时会匹配失准,切换到卫星影像地图则匹配正确。显示世界其他地区地图时无此问题。 (3)Apple Maps Web 版,https://beta.maps.apple.com 中国区域的矢量数据为 EPSG-3857 坐标,显示 GPS 坐标时匹配正确。 (4)OpenStreetMap Web 版 https://www.openstreetmap.org 中国区域的矢量数据为 EPSG-3857 坐标,显示 GPS 坐标时匹配正确。 (5)ArGIS Map Web 版 https://www.arcgis.com/home/webmap/viewer.html 中国区域的矢量数据为 EPSG-3857 坐标,显示 GPS 坐标时匹配正确。 4 、该问题的根源在于中国主管部门允许商用的地理导航数据集必须是 GCJ-02 坐标系统的,因此所有采用该数据集的服务商都会存在与 GPS 坐标叠加显示时匹配失准的问题。GCJ-02 坐标系统说白了就是在真实地理坐标上加入噪声,而该噪声就是你看到的所谓”偏差“。目前最好的解决方案就是使用 OpenStreetMap 数据集,该数据集在中国区域内的详尽程度可能不如来自于百度、高德、四维图新等商业数据集,但其坐标系统是未经过加噪处理的,显示 GPS 坐标不会有失准的问题。 |
10
LaoChen 102 天前
那如果 @aphorism 的最新回复信息是准确的,那可以推断 Apple 在 iOS 上街道数据说不定用的也是 EPSG-3857 坐标?那这个帖子的立论就不存在了。没任何问题了。
我刚刚试了,把我国行 iPhone 在国内拍的照片,AirDrop 到我的纯血美国 iPhone 上,上滑看位置,除了城市名变成了拼音,没有一点毛病啊! Apple:你看我多牛逼,可以找到提供 EPSG-3857 的供应商,来解决东方大国的特色问题! |
11
LaoChen 102 天前
回到楼主 @vonsy 观察到的现象,合理解释是 https://jimpl.com/在街道层面使用了 GCJ-02 数据源?
|