是否可以将Google Maps API基本地图数据用作位于上方自定义地图图层的叠加层?
我想创建一个地图,使用谷歌的基础水和陆地/地形作为底层,然后在上面定位一个自定义数据层(红色多边形区域代表我的数据),然后最终定位谷歌地图的街道/边界/城市标签都在一切之上。
这可能吗?我尝试将Google地图图层(仅打开街道/边界/城市)推送到overlayMapTypes数组,但它似乎强制所有Google地图图层都放在所有内容之上,而我的自定义图层数据(第二层)是不再可见。
答案 0 :(得分:7)
以下是自定义切片图层作为中间图层的示例:
<script type="text/javascript">
function initMap() {
// Map with everything off but boundaries
var myOptions = {
zoom: 2,
center: new google.maps.LatLng(0, 0),
styles: [
{
featureType: 'poi',
stylers: [
{ visibility: 'off' }
]
},
{
featureType: 'road',
stylers: [
{ visibility: 'off' }
]
},
{
featureType: 'transit',
stylers: [
{ visibility: 'off' }
]
},
{
featureType: 'landscape',
stylers: [
{ visibility: 'off' }
]
},
{
elementType: 'labels',
stylers: [
{ visibility: 'off' }
]
}
]
};
var map = new google.maps.Map(document.getElementById("map"), myOptions);
// Middle layer
var tileLayer = new google.maps.ImageMapType({
getTileUrl: "tiles URL here",
tileSize: new google.maps.Size(256, 256),
isPng: true
});
map.overlayMapTypes.push(tileLayer);
// Top layer with everything off but roads
var roadsLayer = [
{
featureType: 'all',
stylers: [
{ visibility: 'off' }
]
},
{
featureType: 'road',
stylers: [
{ visibility: 'on' }
]
}
];
var roadsType = new google.maps.StyledMapType(roadsLayer, { name: 'roads' });
map.overlayMapTypes.push(roadsType);
}