1. 主流地图API全景概览
做WebGIS开发这些年,我几乎把所有主流地图服务API都折腾了个遍。从最早的高德、百度,到后来的腾讯地图、天地图,再到国际范儿的ArcGIS,每家都有自己的脾气和特点。就像选手机一样,有人追求流畅度,有人看重拍照效果,地图API的选择也得看具体业务场景。
先说说国内这几家地图服务商的特点吧。高德地图的导航数据确实精准,我开车用高德导航基本没走错过路;百度地图的POI(兴趣点)数据丰富得吓人,连小区门口新开的小卖部都能搜到;腾讯地图在小程序开发上有天然优势,毕竟都是腾讯自家的产品;天地图作为"国家队",行政区划数据权威性没得说;ArcGIS则是专业GIS领域的扛把子,空间分析功能强大。
这里有个常见的误区要提醒新手:不是功能最全的API就是最好的。我曾经接手过一个项目,客户非要上ArcGIS全套服务,结果发现他们其实只需要简单的地图展示功能,最后白白多花了几十万授权费。所以选型前一定要明确自己的核心需求是什么。
2. 坐标系:地图开发的第一道坎
2.1 坐标系差异详解
第一次对接不同地图API时,我被坐标系问题坑得够呛。简单来说,国内主流地图API用的坐标系主要分三种:
- GCJ-02(火星坐标系) :高德、腾讯在用
- BD-09(百度坐标系) :百度独家
- CGCS2000 :天地图采用的国家标准
最坑的是这些坐标系之间不能直接互转。我有次做项目,需要把百度地图上的点叠加到高德地图上,结果偏移了差不多两条街的距离。后来发现必须经过WGS84坐标系做中转转换才行。
这里给个Python的转换代码示例:
import math
# GCJ-02转WGS84
def gcj02_to_wgs84(lng, lat):
a = 6378245.0 # 长半轴
ee


4049

被折叠的 条评论
为什么被折叠?



