9d openlayers展示cgcs2000地图报错

0 投票

使用产品:iserver 9.1.0

地图源:iserver发布的国家2000天地图矢量图

js代码如下:

    var map, 
    url = "http://192.168.0.121:8090/iserver/services/map-GIS_WS/rest/maps/TianDiTu_CGCS2000_VEC";
    
    proj4.defs("EPSG:4490","+proj=longlat +ellps=GRS80 +no_defs");
    
    var projection4490 = new ol.proj.get('EPSG:4490');
    projection4490.setExtent([-180,-90,180,90]);
    
    map = new ol.Map({
        target: 'map',
        controls: ol.control.defaults({attributionOptions: {collapsed: false}})
            .extend([new ol.supermap.control.Logo()]),
        view: new ol.View({
            center: [112.39635990831,25.6034897345281],
            zoom:2,
            projection:projection4490
        })
    });
    var layer = new ol.layer.Tile({
        source: new ol.source.TileSuperMapRest({
            url: url,
            wrapX: true
        }),
        projection:projection4490
    });
    map.addLayer(layer);

运行结果:

8月 23, 2018 分类:  1446次浏览 | 用户: yaotc (3 分)

1个回答

0 投票
您好,您可以检查一下代码是否有编写的错误。
8月 24, 2018 用户: 于浩 名扬四海 (4,011 分)

如果用4326,就出现下面的问题,地图横向重复,就会出现白边。是不是因为坐标系偏移造成的?

还有如果设置成4326,那投影上去的要素用84坐标还是2000?

国家2000应该可以支持吧,主流坐标系,现在国家都在推,政府大国企都要求用国家2000

可以参考这个

http://openlayers.org/en/latest/doc/tutorials/raster-reprojection.html

您也可以照着这个写,openlayers的官网也有。

没用,没用能解决问题
您好,您可以试一下在

var layer = new ol.layer.Tile({
        source: new ol.source.TileSuperMapRest({
            url: url,
            wrapX: true,
            tileGrid:ol.tilegrid.createXYZ({extent:[-180,-90,180,90]})
        }),
        projection:projection4490
    });

添加tileGrid那一行代码试一下

还是不行,不报错也没有显示

如果加入下面这句,则能看到图,但是不能缩放。放大缩小始终那个比例

projection4490.setExtent([-180,-90,180,90]);

...