openlayers使用googlemap v3 api显示半wms图层

时间:2013-07-23 11:41:29

标签: google-maps-api-3 openlayers geoserver

您好我需要在地图上显示一些shapefile,因为我使用geoserver,openlayers和谷歌地图V3,它的工作原理我不使用OpenLayers.Layer.Google,我可以看到我的shapefile。 这是我的工作代码:

var map = new OpenLayers.Map('map');
var ghyb = new OpenLayers.Layer.Google(
"Google Hybrid",
{type: google.maps.MapTypeId.HYBRID, numZoomLevels: 30,srs:'EPSG:2077'}
// used to be {type: G_HYBRID_MAP, numZoomLevels: 20}
);
    var wms = new OpenLayers.Layer.WMS( "Italy WMS",
        "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
        var regioni_wms = new OpenLayers.Layer.WMS(
"comuni",
"http://localhost:8080/geoserver/wms",
{
    layers: "prov2011_g" ,
    transparent: "true",
    format: "image/png",
    srs:'EPSG:2077',
},
{isBaseLayer: false}
);
map.addLayer(regioni_wms);
    //map.addLayer(ghyb);
map.addLayer(wms)
    map.zoomToMaxExtent();

如果我将图层ghyb添加到地图中,则只渲染我的多边形的一半,如果放大则消失。我不知道是否存在墨卡托的问题以及如何修复它。

1 个答案:

答案 0 :(得分:1)

Google图层仅预测在EPSG 900913中。如果您尝试使用其他任何内容,那么它是否会起作用是值得怀疑的。好消息是,Geoserver将动态重新投影您的wms服务到EPSG 9000913.我建议您在两个层中进行此投影,并查看是否会产生影响。

有一点需要注意的是,如果您尝试打印图层,则不会沿x轴缩放。此外,如果您在网站上使用测量工具,则需要确保它可以在测地仪中运行。