我正在使用谷歌地图v3 javascript api,我尝试根据google.develper的指南创建自定义地图类型。
但是我发现地图类型只提供一个图层,而我的自定义地图类型应提供两个图层,就像包含两个图层的google.maps.MapTypeId.HYBRID
一样 - SATELLITE
和Placenames
。
所以我想知道这是否可行?
BWT,我问过有关maptype和图层here的问题。
地图类型似乎是由图层组成的,这是真的吗?
事实上,我的第一个问题是由Michael Geary
解决的。
但是,我现在遇到了新问题,因为它仍然与自定义maptype相关,所以我更新了这篇文章,而不是创建一个新问题。
Q2:
如果我有多个图层,maptypecontrol怎么样?
如您所见,google.maps.mapTypeId.HYBRID有两个层 - 卫星和标签。
所以在maptype控件中你会发现:
请注意Labels
复选框。
现在我的自定义地图类型有两个层次 - base
和labels
,如何切换labels
图层?
答案 0 :(得分:1)
自定义地图类型为每个图块定义DOM元素as described here。该DOM元素不仅限于单个图像。您可以拥有一个<div>
,其中包含任意数量的图像和其他元素。
使用此方法实现混合地图类型。以下是Chrome DOM检查器的屏幕截图,显示了混合卫星视图中的单个地图图块:
如您所见,<div>
有两个<img>
个孩子。第一个是khms0.googleapis.com
提供的,是基本卫星图块图像。第二个是mts0.googleapis.com
提供的,是带有透明背景的标签和边框覆盖图块。就Maps API而言,这只是一种地图类型:API只知道容器<div>
,而不知道其中的图像。
文档base map example部分中的Base Map Types说明了使用<div>
元素作为地图图块。您可以将其作为起点,并在<img>
内添加<div>
个图块。