前几天用 Leaflet 这个 Javascript 模块制作了一个需要用到地图的项目,但是在寻找地图数据源时发现,高德的卫星图在中国大陆以外地区无法放大到较高精度,显示该区域无卫星图;而谷歌中国的卫星图上没有街道信息。 经过一些研究,我发现高德的卫星图分为两个图层:卫星图层和街道图层。而且,高德和谷歌中国的地图都使用了天朝的火星坐标系加密,也就是两者的地图可以直接叠加而不会错位。将高德的街道层和谷歌中国的卫星层合并,就有了一张既能高精度放大、又有街道信息的电子地图。 演示: var map = L.map("map", { center: [39.904983,116.427287], zoom: 3, zoomControl: false }).setMaxBounds([[-90,0],[90,360]]); var mapLayers = { '谷歌高德杂交/卫星':L.layerGroup([ L.tileLayer('//www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}', { maxZoom: 20, minZoom: 3, attribution: "谷歌提供卫星图,高德提供街道图" }), L....