如何使用Google Maps API设置图层顺序?

时间:2013-01-23 23:55:11

标签: javascript google-maps-api-3

我正在开发一个网络地图网站(使用谷歌地图api 3.0和javascript),它结合了谷歌地图顶部显示的wms图层和地面叠加层(上传的栅格)。该软件运行良好,但我在控制图层的绘制顺序时遇到问题。我想让wms图层(NRCS土壤图层)显示在自定义光栅图像的顶部,并以谷歌地图作为基础图层。目前,wms图层按预期显示在Google地图图层的顶部,但被栅格图层覆盖。问题是:谷歌地图api是否允许控制图层显示的顺序(在我的情况下,谷歌地图顶部的栅格图层顶部的矢量图层)?我已经尝试设置显示顺序的zindex,但这没有用(但我很容易丢失一些东西)。

2 个答案:

答案 0 :(得分:1)

WMS图层也是栅格,而不是矢量 - 我假设您正在使用ImageMapType和GroundOverlay?

暂且不说,一旦将图层添加到地图中,就无法控制图层排序。

作为一个黑客(未经测试)你可能希望按照你希望它们绘制的顺序添加图层,并且之间有一些超时...我认为这可能有效(再次,未经测试)。

答案 1 :(得分:0)

(可选)。 我是如何订购的。

首先我在这样的对象中创建图层。

        layer = {};
        layer.nrcs_soils= new google.maps.ImageMapType({
            getTileUrl: function (coord, zoom) {
                return getTileWmsUrl(coord, zoom, "nrcs_soils");
            },
            tileSize: new google.maps.Size(256, 256),
            opacity: 1,
            name:'nrcs_soils',
            alt:{
                layer_name:'nrcs_soils'
                ,order   : 0
            },
            isPng: true
        });

之后我创建了简单的函数添加图层来映射。

add_layer = function(layer_name){
   //-- get order from object layer
   var order_layer =layer[layer_name].alt.order;
   map.overlayMapTypes.insertAt(order_layer ,layer[layer_name]);

}

只需在对象图层上的设置中为添加和订购图层调用此函数。

add_layer("nrcs_soils");