我有一个图像覆盖,在选定的Google地图上显示高分辨率图像(参见Google API示例中的示例)。在卫星视图下,这工作得很好。然而,当用户切换到混合视图时,我注意到在我的地图覆盖层上没有显示任何标签或街道。有人知道有什么方法可以让街道和标签显示在我的地图上吗?
—BEGIN EDIT—
我确实在这里发现了一个类似的问题。然而,我不知道如何在我的自定义覆盖层没有图像的地图部分上不获得重复的数据街道/标签层。如果这是最佳解决方案,那么当选择的映射类型id为HYBRID时,是否有一种方法可以隐藏标签?
我认为你需要做两件事:
- 添加自定义贴图作为基础地图图层
- 添加一个
StyledMapType
与标签只到你的地图的overlayMapTypes
添加自定义贴图作为基础地图图层
参考这个例子来创建一个ImageMapType
,我猜这是你想要的,以便使用你自己的自定义地图类型的瓷砖。
添加仅带有标签的StyledMapType
可以创建一个StyledMapType
:
var featureOpts = [{
elementType: 'geometry'
stylers: [
{ visibility: 'off' }
]
}];
var labelsOnlyMapType = new google.maps.StyledMapType(featureOpts, {
name: 'Labels Only'
});
然后你可以把它放入Map
's overlayMapTypes
。
// assuming you made a Map called 'map'
map.overlayMapTypes.insertAt(0, labelsOnlyMapType);
我只是按照我认为应该发生的在这里,但你应该结束的是
- 底部的贴图作为基础地图
- 标签只出现在地图顶部的
StyledMapType