1

嗨,我需要在地图上显示一些 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 添加到地图中,则只渲染了我的多边形的一半,如果放大它就会消失。我不知道是否是墨卡托的问题,也不知道如何解决。

4

1 回答 1

1

Google 图层仅在 EPSG 900913 中投影。如果您尝试使用其他任何东西,它会起作用是值得怀疑的。好消息是,Geoserver 将即时将您的 wms 服务重新投影到 EPSG 9000913。我建议在您的两个图层中更改此投影,看看是否会有所不同。

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

于 2013-07-25T22:45:34.840 回答