事情的起因是这样的……

近几天和同学去了一次澳门旅游,但是当我们去到大三巴牌坊附近的时候,因为小巷子比较多不会走,打开 Google Map 一看,整个地图就像是被炮弹炸过一样,变得零零碎碎,属于完全不可用的状态

破碎地图截图

而且受到影响的位置不仅仅是大三巴附近,整个澳门半岛的西部都处于渲染错误的状态(但是导航和公交却是基本可用的,会在空白处描出一条线)

破碎地图完整截图

我们没有办法,只能关掉Google Map,使用其他地图软件来查看。

后面从澳门回来后,我越想越奇怪:明明我元旦去澳门的时候的地图是正常的啊,为什么这次会变得这么奇怪呢?

于是,我又把自己的遭遇和其他的网友探讨了一番,得出了一个初步的结论:Google Map 会根据不同地区渲染不同的地图

经过多次测试,我发现,Google Map 在 Android 手机上,第一个判断地区的方法是看SIM卡

我尝试了大陆单卡、香港单卡、双卡(大陆在SIM1,香港在SIM2)的情况,结果发现,无论使用什么网络,在大陆单卡或双卡的情况下,地图都会出现破碎的情况;而在使用香港卡的情况下,则会出现正常的地图

正常地图截图

我们再进一步探究,其本质是两个地图之间渲染优先度和地图坐标系的问题

众所周知,因为一些我也不知道他们在干什么的原因,中国大陆公司制作的地图所使用的都是和国际惯例不同的坐标系,这就导致了地图不同程度的偏移

而 Google Map 在大陆使用的地图是向大陆公司购买的,遵循了大陆的特殊坐标系,导致了部分地区偏移到了澳门半岛内

又因为渲染优先性的原因,在使用大陆 SIM 卡时,会优先确保大陆地图的完整性,这使得部分澳门区域被大陆偏移的地图重叠覆盖

而在无卡的情况下,有人推测,也可能会参考网络的IP地址和设备的区域设置,来决定是否使用的地图,但是我没有足够的经验去探究这个问题(

所以,很显然,最快最简单的解决方法就是关闭/移除大陆的 SIM 卡,这样就可以正常使用 Google Map 了

Credits:
Cover - Generated by Paint Cocreator