创建地图--vue

1.地图api

ArcGIS API for JavaScript(version: 4.x):
API文档地址:https://developers.arcgis.com/javascript/latest/api-reference/
ArcGIS API for JavaScript(version: 3.x):
API文档地址:https://developers.arcgis.com/javascript/3/jsapi/map-amd.html

2.使用esri-loader加载ArcGIS API for JavaScript 3.x或4.x

安装esri-loader:

npm install --save esri-loader

3.创建地图map

使用预定义的底图创建地图

<template>
  <div class="map"></div>
</template>
<script>
  import { loadModules } from 'esri-loader';
  export default {
    name: 'web-map',
    data(){
      return{
        map:null,
        view:null
      }
    },
    mounted() {
      loadModules([
        "esri/Map",
        "esri/views/MapView",
        "esri/layers/WebTileLayer",
        "esri/layers/support/TileInfo",
        "esri/geometry/Extent", "esri/symbols/Font", "esri/tasks/IdentifyTask", "esri/tasks/support/IdentifyParameters",
        "esri/PopupTemplate", "esri/symbols/PictureMarkerSymbol", "esri/Graphic", "esri/layers/MapImageLayer", "esri/layers/GraphicsLayer",
        "esri/symbols/TextSymbol", "esri/Color", "esri/views/2d/draw/Draw", "esri/symbols/SimpleFillSymbol", "esri/symbols/SimpleLineSymbol",
        "esri/geometry/SpatialReference", "esri/tasks/GeometryService", "esri/tasks/support/AreasAndLengthsParameters",
        "esri/tasks/support/LengthsParameters", "esri/geometry/Point", "esri/geometry/Polyline", "esri/geometry/Polygon",
        'esri/geometry/geometryEngine', "esri/layers/TileLayer", 'esri/layers/FeatureLayer',
        "esri/layers/GeoJSONLayer",
        "dojo/domReady!",
        
      ], { css: true })
        .then(([
        Map, MapView, WebTileLayer, TileInfo, Extent, Font, IdentifyTask, IdentifyParameters,
        PopupTemplate, PictureMarkerSymbol, Graphic, MapImageLayer, GraphicsLayer, TextSymbol, Color, Draw, SimpleFillSymbol, SimpleLineSymbol,
        SpatialReference, GeometryService, AreasAndLengthsParameters, LengthsParameters, Point, Polyline, Polygon, GeometryEngine,
        TileLayer, FeatureLayer,GeoJSONLayer]) => {
        
        this.map = new Map({
          basemap: 'topo-vector',//使用预定义的底图
          spatialReference: { //空间参考,很重要
            wkid: 4490
          },
        });
        
        this.view = new MapView({
          container: this.$el,
          map: this.map,
          center: [113.25874328613281,23.129310008527632],
          zoom: 11,
        });
      });
    },
  }
</script>

<style>
  .map{
    width:1500px;
    height:600px;
    background-color: #aaa;
  }
</style>

使用自定义的底图创建地图

<template>
  <div class="map"></div>
</template>
<script>
  import { loadModules } from 'esri-loader';
  export default {
    name: 'web-map',
    data(){
      return{
        map:null,
        view:null
      }
    },
    mounted() {
      loadModules([
        "esri/Map",
        "esri/views/MapView",
        "esri/layers/WebTileLayer",
        "esri/layers/support/TileInfo",
        "esri/geometry/Extent", "esri/symbols/Font", 
        "esri/tasks/IdentifyTask", "esri/tasks/support/IdentifyParameters",
        "esri/PopupTemplate", "esri/symbols/PictureMarkerSymbol",
        "esri/Graphic", "esri/layers/MapImageLayer", "esri/layers/GraphicsLayer",
        "esri/symbols/TextSymbol", "esri/Color", "esri/views/2d/draw/Draw", 
        "esri/symbols/SimpleFillSymbol", "esri/symbols/SimpleLineSymbol",
        "esri/geometry/SpatialReference", "esri/tasks/GeometryService", 
        "esri/tasks/support/AreasAndLengthsParameters",
        "esri/tasks/support/LengthsParameters", "esri/geometry/Point",
         "esri/geometry/Polyline", "esri/geometry/Polygon",
        'esri/geometry/geometryEngine', "esri/layers/TileLayer", 
        'esri/layers/FeatureLayer',
        "esri/layers/GeoJSONLayer",
        "dojo/domReady!",
        
      ], { css: true })
        .then(([
        Map, MapView, WebTileLayer, TileInfo, Extent, Font, IdentifyTask,
        IdentifyParameters,PopupTemplate, PictureMarkerSymbol, Graphic,
        MapImageLayer, GraphicsLayer, TextSymbol,Color, Draw, SimpleFillSymbol, 
        SimpleLineSymbol,SpatialReference, GeometryService, 
        AreasAndLengthsParameters, LengthsParameters, Point, Polyline, Polygon,
        GeometryEngine,TileLayer, FeatureLayer,GeoJSONLayer]) => {
        
        var baseTileLayer=new TileLayer({
		  id: "base-tile-layer",//自定义值
		  //使用自定义的底图(自己发布的地图服务图层)
		  url: 'http://116.8.3.144:60/arcgis/rest/services/base/lz_vec/MapServer',
		  visible: true,
		});
        this.map = new Map({
          basemap: {
          	baseLayers: [baseTileLayer]
          },
          spatialReference: { //空间参考,很重要
            wkid: 4490
          },
        });
        
        this.view = new MapView({
          container: this.$el,
          map: this.map,
          center: [113.25874328613281,23.129310008527632],
          zoom: 11,
        });
      });
    },
  }
</script>

<style>
  .map{
    width:1500px;
    height:600px;
    background-color: #aaa;
  }
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值