esri默认底图的加载

以satellite为例


方式一:

var map = new Map({

basemap:"satellite"

});

方式二:

 var EsriSatelliteWebtilelayer = new WebTileLayer({
      urlTemplate:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{level}/{row}/{col}"
     });

方式三:

 var EsriImglayer = new WMTSLayer({
      url:"http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/WMTS",
      serviceMode:"RESTful"
     });

方式四:

     var EsriSatelliteTileLayer = new TileLayer({
      //attributionDataUrl:"https://static.arcgis.com/attribution/World_Imagery",
      url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"
     });

方式一:

依次请求

https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer?f=json

https://static.arcgis.com/attribution/World_Imagery?f=json

//

https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tilemap/1/0/0/32/32

https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/1/0/1

//

https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tilemap/2/0/0/32/32

https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/2/2/2


方式二:

直接请求切片:https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/1/1/1


方式三:

依次请求

元数据:https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabilities.xml

切片:https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/tile/1.0.0/World_Imagery/default/default028mm/1/1/1.jpg


方式四:

是方式一的实际实现方式



二、比较特殊的非srcgisserver服务:

1、osm(openstreetmap),默认第一种加载方式为直接加载图片


所以,需要利用WebTileLayer进行加载(注意col和row的顺序,注意调整)

     var EsriOsmlayer =new WebTileLayer({
      urlTemplate:"https://b.tile.openstreetmap.org/{level}/{col}/{row}.png"
     });

2、vector tile矢量切片服务

  //以dark-gray-vector为例
     var EsriDarkgrayvectorlayer =new VectorTileLayer({
      url:"https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer"
     });

依次发送请求

https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer?f=json

https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer/resources/styles/root.json

https://static.arcgis.com/attribution/Vector/v1/World_Basemap?f=json

https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer/resources/sprites/sprite.json

https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer/resources/sprites/sprite.png

https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer/tilemap

https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer/tile/0/0/0.pbf

https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer/resources/fonts/Arial%20Regular/0-255.pbf



不同的style渲染


 //gray-vector
     var EsriGrayvectorlayer =new VectorTileLayer({
      url:"https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer"
     });
     EsriGrayvectorlayer.loadStyle("https://www.arcgis.com/sharing/rest/content/items/5dd75c1a544b46c3af01ba5736bfdfa0/resources/styles/root.json");


完整加载代码如下:

<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
  <title>WMSLayer - 4.5</title>
  <style>
    html,
    body,
    #viewDiv {
      padding: 0;
      margin: 0;
      height: 100%;
      width: 100%;
    }
  </style>
  <link rel="stylesheet" href="https://js.arcgis.com/4.5/esri/css/main.css">
  <script src="https://js.arcgis.com/4.5/"></script>
  <script>
    require([
      "esri/config",
      "esri/Map",
      "esri/views/MapView",
      "esri/layers/WMSLayer",
      "esri/layers/WMTSLayer",
      "esri/layers/FeatureLayer",
      "esri/layers/WebTileLayer",
      "esri/layers/TileLayer",
      "esri/layers/VectorTileLayer",
      "esri/widgets/Legend",
      "dojo/domReady!"
    ], function(
      esriConfig,
      Map,
      MapView,
      WMSLayer,
      WMTSLayer,
      FeatureLayer,
      WebTileLayer,    
      TileLayer,  
      VectorTileLayer,
      Legend
    ) {
     esriConfig.request.corsEnabledServers.push(
        "http://t0.tianditu.com/","http://localhost:8080/","http://services.arcgisonline.com/","http://t0.tianditu.cn/");
     //正确的web投影坐标系


     /*     //webtilelayer
     var EsriSatelliteWebtilelayer = new WebTileLayer({
      urlTemplate:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{level}/{row}/{col}"
     });
     
     var EsriSatelliteTileLayer = new TileLayer({
      url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"
     });
*/
     var EsrriTransportlayer = new WMTSLayer({
      url:"http://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Transportation/MapServer/WMTS",
      serviceMode:"RESTful"
     });
    //streets
     var EsriStreetlayer =new WMTSLayer({
      url:"http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer/WMTS",
      serviceMode:"RESTful" 
     });
     //satellite
     var EsriSatellitelayer =new WMTSLayer({
      url:"http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/WMTS",
      serviceMode:"RESTful" 
     });
     //hybrid
      var EsriHybridlayer =new WMTSLayer({
      url:"https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer/WMTS",
      serviceMode:"RESTful" 
     });
      //topo
      var EsriTopolayer =new WMTSLayer({
      url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/WMTS",
      serviceMode:"RESTful" 
     });
      //gray
      var EsriGraylayer =new WMTSLayer({
      url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/WMTS",
      serviceMode:"RESTful" 
     });
     //dark-gray
      var EsriDarkgraylayer =new WMTSLayer({
      url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer/WMTS",
      serviceMode:"RESTful" 
     });
      //oceans
     var EsriOceanslayer =new WMTSLayer({
      url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer/WMTS",
      serviceMode:"RESTful" 
     });
     //national-geographic
     var EsriNationalgeographiclayer =new WMTSLayer({
      url:"https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/WMTS",
      serviceMode:"RESTful" 
     });
     //terrain
     var EsriTerrainlayer =new WMTSLayer({
      url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/WMTS",
      serviceMode:"RESTful" 
     });
     //osm:并非acgisserver发布的服务
     var EsriOsmlayer =new WebTileLayer({
      urlTemplate:"https://b.tile.openstreetmap.org/{level}/{col}/{row}.png"
     });
     //dark-gray-vector
     var EsriDarkgrayvectorlayer =new VectorTileLayer({
      url:"https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer"
     });
     EsriDarkgrayvectorlayer.loadStyle("https://www.arcgis.com/sharing/rest/content/items/5ad3948260a147a993ef4865e3fad476/resources/styles/root.json");
     //gray-vector
     var EsriGrayvectorlayer =new VectorTileLayer({
      url:"https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer"
     });
     EsriGrayvectorlayer.loadStyle("https://www.arcgis.com/sharing/rest/content/items/5dd75c1a544b46c3af01ba5736bfdfa0/resources/styles/root.json");
     //streets-vector
    var EsriStreetsvectorlayer =new VectorTileLayer({
      url:"https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer"
     });
    EsriStreetsvectorlayer.loadStyle("https://www.arcgis.com/sharing/rest/content/items/a60a37a27cc140ddad15f919cd5a69f2/resources/styles/root.json?f=json");
    //topo-vector
    var EsriTopovectorlayer =new VectorTileLayer({
      url:"https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer"
     });
    EsriTopovectorlayer.loadStyle("https://www.arcgis.com/sharing/rest/content/items/86d5ed4b6dc741de9dad5f0fbe09ae95/resources/styles/root.json");
    //streets-night-vector
    var EsriStreetsnightvectorlayer =new VectorTileLayer({
      url:"https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer"
     });
    EsriStreetsnightvectorlayer.loadStyle("https://www.arcgis.com/sharing/rest/content/items/92c551c9f07b4147846aae273e822714/resources/styles/root.json");
    //streets-relief-vector
    var EsriStreetsreliefvectorlayer =new VectorTileLayer({
      url:"https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer"
     });
    EsriStreetsreliefvectorlayer.loadStyle("https://www.arcgis.com/sharing/rest/content/items/78c0a9ab4fbf4198a8b951848aab19d8/resources/styles/root.json");
    //streets-navigation-vector
     var EsriStreetsnavigationvectorlayer =new VectorTileLayer({
      url:"https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer"
     });
    EsriStreetsnavigationvectorlayer.loadStyle("https://www.arcgis.com/sharing/rest/content/items/e19e9330bf08490ca8353d76b5e2e658/resources/styles/root.json");




      var map = new Map({
      basemap:"satellite"
      // layers:[EsriSatellitelayer]//satellite
      // layers:[EsriSatellitelayer,EsriHybridlayer]//hybrid
      //layers:[EsriTopolayer]//topo
      //layers:[EsriGraylayer]//gray
      //layers:[EsriDarkgraylayer]//dark-gray
      //layers:[EsriOceanslayer]//oceans
      //layers:[EsriNationalgeographiclayer]//national-geographic
      //layers:[EsriTerrainlayer]//terrain
      //layers:[EsriOsmlayer]//osm
      //layers:[EsriDarkgrayvectorlayer]//dark-gray-vector
      //layers:[EsriGrayvectorlayer]//gray-vector
      //layers:[EsriStreetsvectorlayer]//streets-vector
      //layers:[EsriTopovectorlayer]//topo-vector
      //layers:[EsriStreetsnightvectorlayer]//streets-night-vector
      //layers:[EsriStreetsreliefvectorlayer]//streets-relief-vector
      //layers:[EsriStreetsnavigationvectorlayer]//streets-navigation-vector
      });




      var view = new MapView({
        container: "viewDiv",
        map:map
      });


     view.on("click",function(evt){
             alert("经纬:"+evt.mapPoint.longitude+":"+evt.mapPoint.latitude+"\n"+"投影:"+evt.mapPoint.x+":"+evt.mapPoint.y+"\n"+"spatialReference:"+JSON.stringify(view.spatialReference));
          });
    });
  </script>
</head>
<body>
  <div id="viewDiv"></div>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值