2021-1-19工作记录

(一) supermap服务

1 rest服务

2 切片服务

2.1 TileSuperMapRest

(二) arcgis服务

1 rest服务

2 切片服务

2.1 XYZ

  1. 参数:
url: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer'
this.baselayer.baseurl1=url+'/tile/{z}/{y}/{x}'
  1. html
<arc-tile-layer :id="'瓦片暗色'"
                :url="baselayer.baseurl1"
                :projection="'3857'"
                :visible="true"
                :zIndex="0"></arc-tile-layer>
  1. js
 getmapServicInfo(url){//获取地图信息,获取瓦片信息
     var self = this
     this.$axios.get(url+'?f=json').then(res => {
         console.log(res.data,'sssssssss')
     }, err => {
         this.$message.error("获取信息失败!");
         return false;
     })
}

在这里插入图片描述

3 要素服务

3.1 记录1

import $ from 'jquery'

//加载ArcGIS REST矢量要素服务地图
createFeature (serviceUrl, serviceLayer, esrijsonFormat, spatialReference) {
  var that = this
  //实例化矢量数据源对象(AJAX请求REST服务)
  that.vectorSource = new VectorSource({
    loader: function (extent, resolution, projection, success, failure) {
      const url =
        serviceUrl +
        serviceLayer +
        '/query/?f=json&' +
        'returnGeometry=true&spatialRel=esriSpatialRelIntersects&geometry=' +
        encodeURIComponent(
          '{"xmin":' +
          extent[0] +
          ',"ymin":' +
          extent[1] +
          ',"xmax":' +
          extent[2] +
          ',"ymax":' +
          extent[3] +
          ',"spatialReference":{"wkid":102100}}'
        ) +
        '&geometryType=esriGeometryEnvelope&inSR=102100&outFields=*' +
        '&outSR=102100';
      $.ajax({
        url: url,
        dataType: 'jsonp',
        success: function (response) {
          if (response.error) {
            alert(
              response.error.message + '\n' + response.error.details.join('\n')
            );
            failure();
          } else {
             // 从请求结果中读取要素
            const features = esrijsonFormat.readFeatures(response, {
              // dataProjection: projection,
              featureProjection: projection,
            });
            if (features.length > 0) {
              //将要素设置到数据源中
              that.vectorSource.addFeatures(features);
            }
            success(features);
          }
        },
        error: failure,
      });
    },
    strategy: tileStrategy(
      createXYZ({
        tileSize: 512,
      })
    ),
  });
},
initLayer () {
  this.Layer = new VectorLayer({
    zIndex: this.zIndex,
    source: this.vectorSource,
  });
  return this.Layer
},

3.2 记录2 修改版

createSource(url,extent){
  var self = this
  var str = url+
    '/query/?f=json' +
    // '&returnGeometry=true&spatialRel=esriSpatialRelIntersects&geometry='+
    // encodeURIComponent(
    //   '{"xmin":' +
    //     extent.xmin +
    //     ',"ymin":' +
    //     extent.ymin +
    //     ',"xmax":' +
    //     extent.xmax +
    //     ',"ymax":' +
    //     extent.ymax +
    //     ',"spatialReference":{"wkid":'+extent.spatialReference.wkid+'}}'
    // ) +
    // '&geometryType=esriGeometryEnvelope'
    "&where="+
    encodeURIComponent("1=1")
  this.$axios.get(str).then(res => {    let response=res.data
    if (response.error) {
      alert(
        response.error.message + '\n' + response.error.details.join('\n')
      );
      // failure();
    } else {
      // 从请求结果中读取要素
      const features = new EsriJSON().readFeatures(response);//ESRI的JSON数据格式解析类
      if (features.length > 0) {
        //将要素设置到数据源中
        // self.map.removeLayer(self.Layer)
        self.Layer.getSource().addFeatures(features);
        let source=self.Layer.getSource()
        this.$emit('getArcFeatureLayerInfo',self.Layer,source)
        // self.map.getView().fit(source.getExtent())
        // self.tempLayer.setSource(self.vectorSource)
        // self.map.setLayers([self.Layer])
        // self.map.addLayer(self.tempLayer)
      }
    }
  }, err => {
      this.$message.error("获取信息失败!");
      return false;
  })
},
getArcFeatureLayerInfo(layer,source){
  this.$refs.OLmap.viewFit(source.getExtent())
},

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值