【问题标题】:Distorted WMS layer (GeoServer/ OpenLayers)扭曲的 WMS 层(GeoServer/ OpenLayers)
【发布时间】:2015-02-17 07:06:20
【问题描述】:

两天前我问了同样的问题,但我仍然在努力解决这个问题。 1.我在RT90有一个shapefile。 2.我在 ArcMap 中将它重新投影到 WGS_1984_Web_Mercator_Auxiliary_Sphere(epsg3857) 3.在 GeoServer 中,Native SRS 是空白的(甚至没有显示 Unknown),Declared SRS 设置为 3857,因为 4326 由于某种原因不起作用(图层预览中没有图像)。 GeoSever 中的 WMS 层是这样的:

它在浏览器中被扭曲了:

这是我的代码:

    <script src="http://cdnjs.cloudflare.com/ajax/libs/proj4js/1.1.0/proj4js-compressed.js"></script>
    <script defer="defer" type="text/javascript">
        var lon = 13.2;
        var lat = 55.7;
        var zoom = 10;

        var bounds = new OpenLayers.Bounds(
                1460205.410400961, 7494354.925820643,
                1476383.1814075545, 7510328.218502053
            );

        var options = {
                controls: [],
                maxExtent: bounds,
                maxResolution: 63.194417994505784,
                projection: "EPSG:3857",
                units: 'm'
                };


       var map, vectors, controls; 

       function init(){

        var map = new OpenLayers.Map({
        div: "map",
        allOverlays: true
        });


        var build1_wms = new OpenLayers.Layer.WMS( "Building",
                "http://localhost:8090/geoserver/wms/wsNYCRoad", {
                layers: 'bygg_lant_p',
                styles: '',      
                transparent:true,
                tiled: 'ture',
                tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom
            },
            {
                buffer: 0,
                displayOutsideMaxExtent: true,
                isBaseLayer: true,
                yx : {'EPSG:3857' : false}
            });

            map.addLayers([build1_wms]);
            map.addControl(new OpenLayers.Control.LayerSwitcher());
            map.addControl(new OpenLayers.Control.MousePosition());

我也尝试添加这个,但没有帮助:

var EPSG4326 = new OpenLayers.Projection("EPSG:4326");
var EPSG3857 = new OpenLayers.Projection("EPSG:3857 ");

请帮我弄清楚如何解决这个问题!

【问题讨论】:

    标签: openlayers geoserver


    【解决方案1】:

    我解决了这个问题:

         var map = new OpenLayers.Map({
                    maxScale: 1/5000,
                    minScale: 1/500000,
                    projection: new OpenLayers.Projection("EPSG:3857"),
                    displayProjection: new OpenLayers.Projection("EPSG:4326"),
                    div: "map",
            allOverlays: true
            });
    .
    .
    .
     var proj = new OpenLayers.Projection("EPSG:4326");
                var lonlat = new OpenLayers.LonLat(1468582.90048, 7501836.76895);
                lonlat.transform(proj, map.getProjectionObject());
                map.setCenter(lonlat, 5);
    

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多