Javascript 具有多个图层的自定义贴图类型

Javascript 具有多个图层的自定义贴图类型,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在使用GoogleMapV3JavaScriptAPI,并尝试根据上的指南创建自定义映射类型 然而,我发现地图类型只提供一个层,而我的自定义地图类型应该提供两个层,就像google.maps.MapTypeId.HYBRID一样,它包含两个层-卫星和地名 所以我想知道这是否可能 BWT,我有一个关于贴图类型和图层的问题 地图类型似乎是由层组成的,这是真的吗 事实上,我的第一个问题是由Michael Geary解决的 但是,我现在遇到了新的问题,因为它仍然与自定义映射类型相关,所以我更新了这

我正在使用GoogleMapV3JavaScriptAPI,并尝试根据上的指南创建自定义映射类型

然而,我发现地图类型只提供一个层,而我的自定义地图类型应该提供两个层,就像
google.maps.MapTypeId.HYBRID
一样,它包含两个层-卫星
和地名

所以我想知道这是否可能

BWT,我有一个关于贴图类型和图层的问题

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


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

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

问题2:

如果我有多个图层,maptypecontrol如何

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

因此,在maptype控件中,您将发现:

注意
标签
复选框


现在,我有了两个用于自定义贴图类型的层--
base
标签
,如何使
标签
层可以切换?

自定义贴图类型为每个磁贴定义一个DOM元素。DOM元素不仅仅限于一个图像。您可以在
中嵌套任意数量的图像和其他元素

这种方法实现了混合映射类型。以下是Chrome DOM inspector的屏幕截图,在混合卫星视图中显示单个地图块:

如您所见,
有两个子项。第一个是从khms0.googleapis.com提供的基本卫星图像。第二个是来自mts0.googleapis.com
的标签和边框叠加瓷砖,背景透明。就Maps API而言,这只是一种单一的映射类型:API只知道容器
,而不知道其中的图像


文档部分中的说明了如何使用
元素作为地图分幅。您可以将其作为起点,并将
磁贴添加到
中。自定义映射类型为每个磁贴定义一个DOM元素。DOM元素不仅仅限于一个图像。您可以在
中嵌套任意数量的图像和其他元素

这种方法实现了混合映射类型。以下是Chrome DOM inspector的屏幕截图,在混合卫星视图中显示单个地图块:

如您所见,
有两个子项。第一个是从khms0.googleapis.com提供的基本卫星图像。第二个是来自mts0.googleapis.com
的标签和边框叠加瓷砖,背景透明。就Maps API而言,这只是一种单一的映射类型:API只知道容器
,而不知道其中的图像


文档部分中的说明了如何使用
元素作为地图分幅。您可以以此为起点,在

中添加
磁贴!。我从来没有找到过这个。这意味着我可以覆盖
google.maps.MapType
而不是
google.maps.ImageMapType
,然后手动创建互动程序(dom元素)?顺便说一句,图层怎么样?没错,你可以使用基本的
MapType
ImageMapType
仅适用于简单的情况,即每个磁贴都有一个图像。我认为你在另一个问题中提到的“层次”是。这是要应用于基础贴图类型的透明图层贴图类型。它是一个单独的贴图类型,因此可以应用于不同类型的基础贴图。这不同于具有内部图层的单一贴图类型,如混合贴图。虽然我说的是
图层
,但我不是指
叠加贴图类型
,而是指图层()。既然这些图层似乎都是由瓷砖组成的,那么图层和叠加贴图类型之间有什么区别呢?它们非常相似,只是有两种不同的方法。您可以创建自己的Overlayer,它与预定义的层非常相似-它不是一个MapType,但它可以以类似于Overlay map类型的方式覆盖在任何基础地图上,只是不需要完全相同的API调用。也就是说,如果我想创建像trafficLayer这样的东西,我必须覆盖MapType?太好了!。我从来没有找到过这个。这意味着我可以覆盖
google.maps.MapType
而不是
google.maps.ImageMapType
,然后手动创建互动程序(dom元素)?顺便说一句,图层怎么样?没错,你可以使用基本的
MapType
ImageMapType
仅适用于简单的情况,即每个磁贴都有一个图像。我认为你在另一个问题中提到的“层次”是。这是要应用于基础贴图类型的透明图层贴图类型。它是一个单独的贴图类型,因此可以应用于不同类型的基础贴图。这不同于具有内部图层的单一贴图类型,如混合贴图。虽然我说的是
图层
,但我不是指
叠加贴图类型
,而是指图层()。既然这些图层似乎都是由瓷砖组成的,那么图层和叠加贴图类型之间有什么区别呢?它们非常相似,只是有两种不同的方法。您可以创建自己的Overlayer,它与预定义的层非常相似-它不是一个MapType,但它可以以类似于Overlay map类型的方式覆盖在任何基础地图上,只是不需要完全相同的API调用。也就是说,如果我想创建类似trafficLayer的东西,我必须覆盖MapType?