地图开发总结
###坑爹的高德项目中地图原来用的高德sdk,其实我不知道当时为什么就用了高德,但既然用了,那么就在此基础上开发吧。可是写着写着,问题就来了: 问题链接。虽然这个问题不是什么太大的问题,但保不准以后还会遇到什么别的坑,而且以高德的效率,短期内肯定不会解决的。那为什么还要用那个sdk呢?好像我们用到的功能苹果自带的MapKit都能实现啊,而且高德官网上的合作伙伴(携程、美团)也是用的原生的MapKit(从地图默认加载背景就可以看出来)。后来只花了一点点时间就切换到苹果的MapKit(API是一样的),目前还没发现什么bug。 ###坐标转换之中国特色因为不用高德了,所以当前位置经纬度就用CoreLocation来获取。可是当你把获取的经纬度放到MKMapView中显示,位置竟然有偏移,而且还不小。 这是苹果的bug吗?不是,是有关部门的功劳。我们只有一个地球,所以地球上每个点的经纬度是固定的,国际上有个通用标准,简称国际标准。CoreLocation取到的经纬度符合国际标准。 可是在国内,由于国家安全,有关部门制定了一套新的标准,简称国家标准。只要是在国内发行的地图(包括电子地图),都要按国家标准来,不然就是非法的。所以苹果手机中的国内地图肯定也是改良过的。 我拿着国际标准的经纬度放到改良过的符合国家标准的地图中,显然会发生偏移。 解决办法就是将国际标准的经纬度转换成国家标准的经纬度。算法是现成的(以前用高德sdk获取当前位置的经纬度本来就是国家标准的,所以没事。)