用openlayer加载arcgis发布的wmts图层

1. 通过wmts 确认发布的wmts是什么格式的。格分为wgs84用的是4326,cgc2000用的是4490,xian80用的是4610,下图是4326格式与其对应的分辨率,这块主要是openlayer2.0加载时,需要详细定义。3.0以上的,用proj4js去定义。

下面是4490格式与其对应分辨率

2。对于4490格式,需要在网页里加载proj4js文件:  <script type="text/javascript" src="../libs/proj4js/2.5.0/proj4.js"></script>

    下载proj4.js文件  https://www.bootcdn.cn/proj4js/

    查找坐标系定义  http://epsg.io/, 如查4490

3.   4490 projection定义:

openlayer2:   

 proj4.defs("EPSG:4490","+proj=longlat +ellps=GRS80 +no_defs"); 
 var projection = new OpenLayers.Projection('EPSG:4490');

openlayer 3:

    proj4.defs("EPSG:4490", "+proj=longlat +ellps=GRS80 +no_defs");
    var projection = new ol.proj.get('EPSG:4490');
    projection.setExtent([-180,-90,180,90]);

 

4. 代码实现,下面url中的{Style}与{TileMatrixSet}要被替换
openlayer2中用OpenLayers.Layer.XYZ,建图层:

url = "http://wmtsnetwf.com/services/QQ/WMTS/tile/1.0.0/CQMap_IMG/{Style}/{TileMatrixSet}/${z}/${y}/${z}";

var wmtsXYZ2 = new OpenLayers.Layer.XYZ(
         "wmts",
         url,
         {
        sphericalMercator: false,
        isBaseLayer: false,
        serverResolutions:titleresolutions4490
    });      

openlayer3中或ol.source.XYZ与ol.layer.Tile,建图层:

url = "http://wmtsnetwf.com/services/QQ/WMTS/tile/1.0.0/CQMap_IMG/{Style}/{TileMatrixSet}/{z}/{y}/{z}";

var wmtsSouceXYZ = new ol.source.XYZ({
        attributions: "wmts",
        maxZoom: 18,
        projection: projection,
        tileSize: [256, 256],
        tileUrlFunction: function (tileCoord) {

         var z = tileCoord[0]-1,  x =tileCoord[1], y = -tileCoord[2]-1; //4490
          return url.replace('{z}', (z).toString())
                            .replace('{x}', (x).toString())
                            .replace('{y}', (y).toString());
        }

      })

      var wmtsLayer = new ol.layer.Tile({
        opacity: 0.7,
        source:wmtsSouceXYZ
      });

要在Vue中加载ArcGIS地图服务,您需要使用OpenLayers库。以下是一些步骤: 1. 安装OpenLayers 您需要先安装OpenLayers库。您可以使用npm来安装它,命令如下: ``` npm install ol ``` 2. 导入OpenLayers 在Vue组件中,您需要导入OpenLayers库。您可以在组件的script部分添加以下代码: ``` import ol from 'ol' import Map from 'ol/Map' import View from 'ol/View' import TileLayer from 'ol/layer/Tile' import XYZ from 'ol/source/XYZ' ``` 3. 创建地图 在Vue组件的methods部分,您可以创建一个createMap函数,其中包含创建地图的代码。以下是一个示例代码: ``` createMap() { let map = new Map({ target: 'map', view: new View({ center: [0, 0], zoom: 2 }) }); let layer = new TileLayer({ source: new XYZ({ url: 'http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}' }) }); map.addLayer(layer); } ``` 在上面的代码中,我们首先创建一个地图对象,然后创建一个瓦片图层,并将其添加到地图对象中。在瓦片图层的source属性中,我们指定了ArcGIS地图服务的URL。 4. 在模板中添加地图 在Vue组件的template部分,您可以添加一个div元素来显示地图。以下是一个示例代码: ``` <template> <div> <div id="map"></div> </div> </template> ``` 在上面的代码中,我们添加了一个id为“map”的div元素,它将用于显示地图。 5. 调用createMap函数 最后,在Vue组件的mounted部分,您可以调用createMap函数来创建地图。以下是一个示例代码: ``` mounted() { this.createMap(); } ``` 在上面的代码中,我们在组件挂载后调用createMap函数。 这就是在Vue中加载ArcGIS地图服务的基本步骤。您可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

diaya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值