这个帖子是在Deepl的帮助下翻译的。如果你想改进这个翻译,请联系我:[email protected]。
我记得我在2010年第一次访问中国。我们在广州预定了一家位置不错的酒店,并将坐标和路线保存在谷歌地图上。但当我们到达一个目的地时,很明显,没有酒店。我在我的酒店应该在的地方,但我周围只有一个巨大的广场(花城广场又名花城广场)。长话短说。在某些时候,有些人用他的Meizu手机救了我们,显示我们的酒店其实离这个广场有几英里远。
这些天来,我 与中国 合作,作为一个开发者,面临着同样的挑战。我决定写一篇文章来总结我的经验,希望这能帮助别人。
Bunny.net is a well-known CDN and storage among developers. Here is my python snippet on how to upload a file to the storage.
首先让我们来谈谈今天使用的主要坐标系。国际标准是WGS-84(地球坐标)或世界大地测量系统,其中84是1984年适用的该标准的最新修订版。 这个标准是由GPS使用的。每次你使用谷歌地图(或几乎任何地图)时,你都可以感谢WGS-84。现在我们来谈谈中国。
WGS-84 ⇛ GCJ-02 ⇛ BD-09
中国监管机构要求经批准的地图服务使用GCJ-02标准(中文:国测局;拼音:guó-cè-jú)。它是由中国国家测绘局在2002年制定的。 有时GCJ-02被称为火星坐标。GCJ-02以WGS-84为基础,使用混淆算法,在纬度和经度上都加入随机偏移,以提高国家安全。如果把WGS-84的点放在GCJ-02地图上,平均来说,会有一个大约300-500米的位置偏移。很少有进入 "英里 "的距离,通常只是几个街区的距离。这就是为什么我在第一次访问中国时迷路了。
抓紧了。还有更多。百度更进一步,实现了另一个抽象,为GCJ-02增加了进一步的混淆。这就是所谓的BD-09(百度,2009年制定)。主要目的是为了保护百度的数据,使竞争对手不能轻易复制。百度有内部工具可以在三个坐标系之间转换,但只将GCJ-02到BD-09公开,以鼓励使用他们的标准来制作瓷砖、搜索坐标等。
按照中国法律的要求,没有官方API可以转换为WGS-84。
根据维基百科,"OpenStreetMap,众包项目,以组装世界地图,建议 "私人测绘活动在中国是非法的"。尽管如果你看一下百度或Mapbox的地图,你经常会在地图许可证旁边发现OSM的归属。这意味着OSM的使用在中国并不违法,你可以从卫星图像中向OSM添加数据。但是要做地面数据采集,你必须获得调查许可证(有能力采集数据并创造商业产品)。而这是一个完全不同的故事。
正如克里斯向我提到的,调查许可证是非常难以获得的。因此,只有不到20家公司拥有这种许可证。像阿里巴巴这样的巨型科技公司需要收购高德,就是为了这个许可证,腾讯不得不购买NavInfo。例如,Mapbox与导航级地图数据的领导者EMG合作。滴滴是过去十年中第一个直接获得其许可的公司(相当具有里程碑意义)。另一方面,地图许可证更容易获得--如果你看一下中国的授权基础地图(Mapbox、百度、高德等)的右下方,你会看到类似 "GS(2020)123号 "的字样。
百度地图授权
你可以想象,转换过程是这样的。WGS-84 ⇛ GCJ-02 ⇛ BD-09,再往后。 发布正式的转换指南是非法的--每次使用坐标转换都需要得到SBSM的批准。
然而,你可以在不同的编程语言中找到这种算法的开源实现。(e.g., eviltransform). 在这篇文章中,我将使用JavaScript实现,但你也很容易找到Python、R、Go等。请看我文章的注释部分。
我们的中文办公室使用百度取点服务来获取所需物体的BD-09坐标。下面是一个屏幕截图。然后我把这个坐标存储在数据库中,并根据用户的地理位置,向WGS-84或GCJ-02转换。对于中国的用户,你必须使用GCJ-02,记得吗?
BD-09 从 api.map.baidu.com
我用coordtransform库和Mapbox做了一个例子,供你玩耍。 从这个服务中复制BD-09坐标并粘贴到这里,以查看转换的结果。
你可以在这里找到这个例子的源代码
Sometimes I need to upload large CSV files to PostgreSQL. CSV file might have hundreds of columns, that's why i want a tool that can do some magic for me.
如果你想为来自中国大陆的用户提供流畅的地图体验,你没有太多的选择。 没有VPN,谷歌地图就无法工作。 我喜欢中国的百度地图。 他们提供了优秀的用户界面和大量方便的GEO数据。 我的意思是,看一下细节。
但是,当涉及到应该在网页上嵌入地图时,留给我的唯一选择就是Mapbox。Mapbox is an excellent alternative map service. 它是合法的,在中国不使用VPN也能完全正常工作。 由于中国的规定,他们通过mapbox.cn提供3种授权基础地图。中国境内的所有数据都是移位的(来自他们的地图合作伙伴),中国境外的所有数据都是不移位的(来自他们自己的数据集,包括OSM)。
带有WGS-84的地图盒 113.31924878632225, 23.12426152397713 坐标 (花城广场 in Guangzhou)
我测试了使用全球访问令牌的api.mapbox.com端点,它在广州运行得非常好。但在中国的情况下,这是一场赌博,所以我建议从mapbox.cn获得访问令牌。
这里有一个算法给你。你的访客GeoIP在中国吗?
我希望这个帖子能够为某人节省时间。我可能会在以后添加更多的信息,因为这是一个复杂的、不被人理解的话题。如果你有任何问题或建议,请给我留言。