具有多个图层的自定义maptype

时间:2013-07-12 02:11:50

标签: javascript google-maps google-maps-api-3

我正在使用谷歌地图v3 javascript api,我尝试根据google.develper的指南创建自定义地图类型。

但是我发现地图类型只提供一个图层,而我的自定义地图类型应提供两个图层,就像包含两个图层的google.maps.MapTypeId.HYBRID一样 - SATELLITEPlacenames

所以我想知道这是否可行?

BWT,我问过有关maptype和图层here的问题。

地图类型似乎是由图层组成的,这是真的吗?


事实上,我的第一个问题是由Michael Geary解决的。

但是,我现在遇到了新问题,因为它仍然与自定义maptype相关,所以我更新了这篇文章,而不是创建一个新问题。

Q2:

如果我有多个图层,maptypecontrol怎么样?

如您所见,google.maps.mapTypeId.HYBRID有两个层 - 卫星和标签。

所以在maptype控件中你会发现:

enter image description here

请注意Labels复选框。

现在我的自定义地图类型有两个层次 - baselabels,如何切换labels图层?

1 个答案:

答案 0 :(得分:1)

自定义地图类型为每个图块定义DOM元素as described here。该DOM元素不仅限于单个图像。您可以拥有一个<div>,其中包含任意数量的图像和其他元素。

使用此方法实现混合地图类型。以下是Chrome DOM检查器的屏幕截图,显示了混合卫星视图中的单个地图图块:

Hybrid map tile DOM elements

如您所见,<div>有两个<img>个孩子。第一个是khms0.googleapis.com提供的,是基本卫星图块图像。第二个是mts0.googleapis.com提供的,是带有透明背景的标签和边框覆盖图块。就Maps API而言,这只是一种地图类型:API只知道容器<div>,而不知道其中的图像。

文档base map example部分中的Base Map Types说明了使用<div>元素作为地图图块。您可以将其作为起点,并在<img>内添加<div>个图块。