zoukankan      html  css  js  c++  java
  • arcgis api for js 3.X版本加载矢量json文件,并缩放至图层

    esriLoader.loadModules(
        [
          'esri/tasks/FeatureSet',
          'esri/layers/FeatureLayer',
          'esri/geometry/Point',
          'esri/geometry/Polygon',
          'esri/geometry/Extent',
          'esri/dijit/PopupTemplate',
          'esri/dijit/LayerSwipe'
        ], options).then(
        ([FeatureSet, FeatureLayer, Point, Polygon, Extent, PopupTemplate, LayerSwipe]) => {
        
        //json地址
    const jsonUrl = 'http://Json/' + vectorInfo.label + '.json' axios.get(jsonUrl, { headers: {}, emulateJSON: true }).then((res) => { const layerJson = res.data const layerDefinition = { 'geometryType': layerJson.geometryType, 'fields': layerJson.fields } var featureSet = new FeatureSet(layerJson) var featureCollection = { 'layerDefinition': layerDefinition, 'featureSet': featureSet }

        //json转成
    FeatureLayer
        var jsonFeaturelayer = new FeatureLayer(featureCollection) jsonFeaturelayer.id = vectorInfo.vectorId.toString() + '_vector'     
        
        //加进图层 self.map.addLayer(jsonFeaturelayer)     
        
        //方法一,获取第一个点
    var point = new Point(jsonFeaturelayer._graphicsVal[0]._extent.xmin, jsonFeaturelayer._graphicsVal[0]._extent.ymin) self.map.centerAndZoom(point, 8)       
          //方法二,所有要素的范围合并
    // var mapExtent = new Extent() // for (let i = 0; i < jsonFeaturelayer._graphicsVal.length; i++) { // var thisExtent = jsonFeaturelayer._graphicsVal[i].geometry.getExtent() // // 创建范围或先前要素与当前要素的并集 // mapExtent = mapExtent.union(thisExtent) // } // self.map.setExtent(mapExtent) // _extent: {xmin: 119.11746198217094, ymin: 36.89781328847772, xmax: 119.2113266911379, ymax: 36.93355761143819, // self.map.center = [jsonFeaturelayer._graphicsVal[0]._extent.xmin, jsonFeaturelayer._graphicsVal[0]._extent.ymin] // var sGeometry = jsonFeaturelayer.fullExtent // var sGeometry = jsonFeaturelayer._graphicsVal[0]._extent // var ftGeoExt = sGeometry.getExtent() // self.map.setExtent(sGeometry) }) } ).catch(err => { console.error(err) })
  • 相关阅读:
    Git中清除远程仓库HTTPS认证信息的方法
    JDK8新增时间类型用在JPA中的问题
    5 个关于 API 中日期和时间设计规则
    时间标准基础知识UTC和ISO8601
    JDK8中的时间API
    2019第7周日
    顶级思维模式:推导事物的第一性原理
    JS的jsoneditor,用来操作Json格式的界面;json-editor用来根据json数据生成界面
    Java读写文件,中文乱码解决
    intellij idea 热部署、热加载设置方法
  • 原文地址:https://www.cnblogs.com/mnxxz/p/11601803.html
Copyright © 2011-2022 走看看