arcgis js(四)加载天地图

arcgis添加天地图山东wtms服务 arcgis添加天地图wtms服务首先打开天地图山东网站,进入首页![天地图山东首页](https://img-blog.csdnimg.cn/89df69e1c3d645b4a9e9652a08580342.png)然后点击开发资源进入开发页面点击成为开发者,进入申请秘钥页面,申请秘钥;![在这里插入图片描述](https://img-blog.csdnimg.cn/80dce4a634a84f128b58e6cc3bdb55b6.png)调用url在资源开发页面详细说明中在arcgis中双击添加wtms 阅读详情

继续进阶(ง •_•)ง

之前我们一直使用arcgsi自带的底图或者地图,总有违和感,体现不出来咱们的优势,借此机会讲讲咱们国家为老百姓提供的 国家地理信息公共服务平台-天地图,也是非常的好用,如果不是为了使用arcgis的地理处理工具和server我才不用arcgisヾ(≧へ≦)〃

一、概述

在2021年6月,esri公司发布了ArcGIS API for JavaScript 4.20,该版本包含了一系列改进,官网:Overview | ArcGIS API for JavaScript,大部分的使用方法在这里都能找到。为了体现测绘和地理信息系统的特殊性和专业性,特别是要引入国家2000坐标系,与当前测绘成果和国家政策相吻合,以提高地理信息资料的精度,需要将地图坐标系设置为wkid:4490,同时国内还提供了地理信息公共平台天地图,具有较新的影像底图和矢量底图,以及对应的注记,极大的方便了测绘工作者,如何将两者有效的结合显得尤为重要。天地图提供了web端和移动端的开发接口,在此记录web端的ArcGIS+天地图的使用方法,为两者的普及工作做一份贡献。移动端的使用方式见arcgis for android 入门与提高(五)加载天地图_郝大大的博客-优快云博客_android studio 天地图

别忘了去天地图天地图API注册key,不废话,直接上代码:

二、配置方式

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
    <title>测试</title>

    <link rel="stylesheet" href="https://js.arcgis.com/4.20/esri/themes/light/main.css" />
    <script src="https://js.arcgis.com/4.20/"></script>

    <style>
        html,
        body,
        #viewDiv {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
    </style>

    <script>
        require([
            "esri/Map",
            "esri/layers/WebTileLayer",
            'esri/layers/support/TileInfo',
            'esri/views/MapView',
            "esri/layers/FeatureLayer",
            "esri/geometry/SpatialReference",
            "esri/geometry/Point",

        ], function (Map, WebTileLayer, TileInfo, MapView, FeatureLayer, SpatialReference, Point) {
            var tiandituBaseUrl = "http://{subDomain}.tianditu.com"; //天地图服务地址
            var token = ""; //天地图token,在官网申请
            var tileInfo = new TileInfo({
                "rows": 256,
                "cols": 256,
                "compressionQuality": 0,
                "origin": {
                    "x": -180,
                    "y": 90
                },
                "spatialReference": {
                    "wkid": 4490
                },
                "lods": [
                    { "level": "1", "scale": 295829355.45, "resolution": 0.703125 },
                    { "level": "2", "scale": 147914677.725, "resolution": 0.3515625 },
                    { "level": "3", "scale": 73957338.8625, "resolution": 0.17578125 },
                    { "level": "4", "scale": 36978669.43125, "resolution": 0.087890625 },
                    { "level": "5", "scale": 18489334.715625, "resolution": 0.0439453125 },
                    { "level": "6", "scale": 9244667.3578125, "resolution": 0.02197265625 },
                    { "level": "7", "scale": 4622333.67890625, "resolution": 0.010986328125 },
                    { "level": "8", "scale": 2311166.839453125, "resolution": 0.0054931640625 },
                    { "level": "9", "scale": 1155583.4197265625, "resolution": 0.00274658203125 },
                    { "level": "10", "scale": 577791.7098632812, "resolution": 0.001373291015625 },
                    { "level": "11", "scale": 288895.8549316406, "resolution": 0.0006866455078125 },
                    { "level": "12", "scale": 144447.9274658203, "resolution": 0.00034332275390625 },
                    { "level": "13", "scale": 72223.96373291015, "resolution": 0.000171661376953125 },
                    { "level": "14", "scale": 36111.98186645508, "resolution": 0.0000858306884765625 },
                    { "level": "15", "scale": 18055.99093322754, "resolution": 0.00004291534423828125 },
                    { "level": "16", "scale": 9027.99546661377, "resolution": 0.000021457672119140625 },
                    { "level": "17", "scale": 4513.997733306885, "resolution": 0.000010728836059570312 },
                    { "level": "18", "scale": 2256.9988666534423, "resolution": 0.000005364418029785156 },
                    { "level": "19", "scale": 1128.4994333267211, "resolution": 0.000002682209014892578 }
                ]
            })

            //影像地图
            var tiledLayer = new WebTileLayer({
                urlTemplate: tiandituBaseUrl + "/DataServer?T=img_c&x={col}&y={row}&l={level}&tk=" + token,
                subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
                tileInfo: tileInfo,
                spatialReference: { wkid: 4490 },
            });

            //影像注记
            var tiledLayerAnno = new WebTileLayer({
                urlTemplate: tiandituBaseUrl + "/DataServer?T=cia_c&x={col}&y={row}&l={level}&tk=" + token,
                subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
                tileInfo: tileInfo,
                spatialReference: { wkid: 4490 },
            });

            //定位到济南市中心
            var cityCenter = new Point(116.985, 36.671, new SpatialReference({ wkid: 4490 }));

            // 创建地图
            var map = new Map({
                basemap: {
                    baseLayers: [tiledLayer, tiledLayerAnno]
                },
            });

            var view = new MapView({
                container: "viewDiv",
                map: map,
                center: cityCenter,
                zoom: 12,
                ui: {
                    components: ["zoom", "compass"]
                }
            });
            //显示经纬度坐标
            view.on("click", (event) => {
                let lat = Math.round(event.mapPoint.latitude * 1000) / 1000;
                let lon = Math.round(event.mapPoint.longitude * 1000) / 1000;
                alert(lon + ", " + lat);
            });

        });
    </script>
</head>

<body>
    <div id="viewDiv"></div>
</body>

</html>

效果:

三、天地图其他图层加载方式

    var URL_VECTOR_2000 = "http://{subDomain}.tianditu.com/DataServer?T=vec_c&x={col}&y={row}&l={level}&tk=";
    var URL_VECTOR_ANNOTATION_CHINESE_2000 = "http://{subDomain}.tianditu.com/DataServer?T=cva_c&x={col}&y={row}&l={level}&tk=";
    var URL_VECTOR_ANNOTATION_ENGLISH_2000 = "http://{subDomain}.tianditu.com/DataServer?T=eva_c&x={col}&y={row}&l={level}&tk=";
    var URL_IMAGE_2000 = "http://{subDomain}.tianditu.com/DataServer?T=img_c&x={col}&y={row}&l={level}&tk=";
    var URL_IMAGE_ANNOTATION_CHINESE_2000 = "http://{subDomain}.tianditu.com/DataServer?T=cia_c&x={col}&y={row}&l={level}&tk=";
    var URL_IMAGE_ANNOTATION_ENGLISH_2000 = "http://{subDomain}.tianditu.com/DataServer?T=eia_c&x={col}&y={row}&l={level}&tk=";
    var URL_TERRAIN_2000 = "http://{subDomain}.tianditu.com/DataServer?T=ter_c&x={col}&y={row}&l={level}&tk=";
    var URL_TERRAIN_ANNOTATION_CHINESE_2000 = "http://{subDomain}.tianditu.com/DataServer?T=cta_c&x={col}&y={row}&l={level}&tk=";

    var URL_VECTOR_MERCATOR = "http://{subDomain}.tianditu.com/DataServer?T=vec_w&x={col}&y={row}&l={level}&tk=";
    var URL_VECTOR_ANNOTATION_CHINESE_MERCATOR = "http://{subDomain}.tianditu.com/DataServer?T=cva_w&x={col}&y={row}&l={level}&tk=";
    var URL_VECTOR_ANNOTATION_ENGLISH_MERCATOR = "http://{subDomain}.tianditu.com/DataServer?T=eva_w&x={col}&y={row}&l={level}&tk=";
    var URL_IMAGE_MERCATOR = "http://{subDomain}.tianditu.com/DataServer?T=img_w&x={col}&y={row}&l={level}&tk=";
    var URL_IMAGE_ANNOTATION_CHINESE_MERCATOR = "http://{subDomain}.tianditu.com/DataServer?T=cia_w&x={col}&y={row}&l={level}&tk=";
    var URL_IMAGE_ANNOTATION_ENGLISH_MERCATOR = "http://{subDomain}.tianditu.com/DataServer?T=eia_w&x={col}&y={row}&l={level}&tk=";
    var URL_TERRAIN_MERCATOR = "http://{subDomain}.tianditu.com/DataServer?T=ter_w&x={col}&y={row}&l={level}&tk=";
    var URL_TERRAIN_ANNOTATION_CHINESE_MERCATOR = "http://{subDomain}.tianditu.com/DataServer?T=cta_w&x={col}&y={row}&l={level}&tk=";

【ArcGIS JS】ArcGIS API for JavaScript加载天地图 关于ArcGIS调用天地图的方法,还有两篇博客可以参考,一个是esri针对SDK for Android,另一个是LZU-GIS扩展dojo。这里我在这两篇文章的基础上提供一种直接调用相关API的方法,基于ArcGIS API for JavaScript v3.18。 一、WMTS服务 WMTS服务即网络地图瓦片服务,不同于WMS、WFS、WCS可以简单一句url的GET请求调用一张地... 阅读详情

相关推荐

【ArcGis for javascript从零开始】之一 ArcGis加载天地图

现在正在做的项目,需要用ArcGis来加载天地图,由于刚刚接触ArcGis方面,一边学习一边做比较吃力。先把学习到的一点点拿出来现学现卖吧。

每天学习一点点 1万+

ArcGIS JS api 4.15加载天地图(一)

1 下载与配置。进入下载页面 https://developers.arcgis.com/javascript/latest/guide/get-api/ 2.

gispipi的博客 3318

ArcGIS JS 与天地图的甜蜜之路番外篇——ArcMap、ArcGIS Pro加载天地图

 在ArcMap或者ArcGIS Pro中加载天地图时,我们要是使用的地址和在js是不一样的,我们要加一个esri,这样加载的天地图是不偏移的。 天地图服务地址如下: 影像地图: http://t0.tianditu.com/cia_w/esri/wmts 天地图影像注记(墨卡托,WGS1984) http://t0.tianditu.com/img_w/esri/wmts 天地图影像(...

豆脑的博客 2036

ArcGis for JavaScript 4.x 加载天地图WMTS服务

展示效果: 注意一定要设置坐标系为4490 <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" /> <title>WMTSLayer | Sample | ArcGIS A

u011276213的博客 1816

ArcGIS API for Javascript4.10加载天地图(墨卡托投影)

本篇主要介绍利用ArcGIS API for Javascript 4版本的最新版本4.10加载天地图的矢量底图、影像地图和地形图,以加载矢量地图为例,我们通过扩展BaseTileLayer来自定义矢量地图图层TiandiMapLayer模块。

佯佯DESIGNER 4853

ArcGIS API for Javascript3.23加载天地图

与上一篇提到的方法一样,加载天地图也是通过TiledMapServiceLayer来自定义天地图图层模块。本篇以加载矢量地图为例,讲解如何自定义图层模块以及加载显示图层。加载各类天地图的效果图:【1】矢量图 【2】影像图 【3】地形图 。

佯佯DESIGNER 3316

【ArcGis for javascript从零开始】之二 ArcGis加载天地图

最近做项目需要用到ArcGis来进行数据展示和数据分析。以前从来没有接触过与Gis有关的东西,一切需要从头开始学。没有时间从头系统地学习了,只能用到哪个学习哪里了,本系列只是对学习的路径进行记录。ArcGis在网上没有找到中文的API,只有官网的英文API和Demo,而且用到了大量dojo的API,dojo也没有接触过,这方面也是需要学习的…… 一、ArcGis加载 引入css 和js

哈里·雪利博客 3907

arcgis for javascript API3.13 加载天地图卫星影像

采用arcgis for javascript  API 3.13, 用其中的esri.layers.TiledMapServiceLayer,这个类可以完成对切片地图的加载,ArcOnline本身自带一个影像地图的,但是缩放后效果不好,所以本人在一个系统中不得不采用天地图的底图。可以看到最后的效果中,有一个天地图的水印。直接上代码了            declare("my.Portlan

GISlv的专栏 5479

arcgis加载4490图层所需js

arcgis加载4490图层所需js

基于Vue3+arcgis js4.28加载天地图

SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&TILECOL={col}&TILEROW={row}&TILEMATRIX={level}&tk=自己的key','https://{subDomain}.tianditu.gov.cn/cva_c/wmts?

m0_65745337的博客 1493

arcgis for js 加载天地图

1、天地图的请求方式 http://t0.tianditu.com/vec_c/wmts?service=wmts&amp;request=GetTile&amp;version=1.0.0&amp;layer=vec&amp;STYLE=default&amp;tilematrixset=c&amp;tilematrix=5&amp;tilerow=2&amp;tilecol=7&amp;fo...

qq_31239117的博客 1536

5分钟学会Leaflet加载天地图和arcgis服务

Leaflet是一个适用于移动端交互地图的开源JavaScript库。 对移动设备很友好,gzip压缩JS代码大约38 KB,它提供了大多数开发人员所需要的所有地图功能。 扩展性强、插件资源丰富,文档清晰的API,源代码简单、易读。 本文用简单的示例,引导新手快速使用leaflet快速开始、加载天地图、加载arcgis服务、自定义4490坐标系,将天地图扩展到19级。 一、快速开始 <!DOCTYPE html> <html> <head> <met

yisimo的博客 1万+

04 ArcGIS JS API 4.12加载天地图

平时开发过程中,如果我们调用arcgis js api官网的底图时,由于受网络的限制,调用就会变得很慢,此时我们可以考虑将我们的底图换为天地图,如下图所示: 具体操作过程如下: 1、加载arcgis api实例化地图时所需的样式文件和js代码包,如下: <link rel="stylesheet" href="https://js.a...

X北辰北的博客 3465

arcgis for js 加载天地图

1源码地址:https://download.csdn.net/download/u010878640/10977878 js引用代码:     &lt;script type="text/javascript"&gt;             //配置arcgis拓展解析天地图服务类引用的路径         dojoConfig = {             parseOnLoad: t...

u010878640的博客 3198

基于ArcGIS API for JavaScript加载天地图

基于ArcGIS API for JavaScript加载天地图,加载在线天地图,通过继承TiledMapServiceLayer类实现。

ArcGIS for js4.x实现天地图加载与地图切换

本文实现了ArcGIS js中加载天地图 并实现矢量地图和影像地图切换。 版本:ArcGIS for js4.x,天地图:包含国家天地图和山东天地图,2019年最新版天地图。

ArcGIS api for js 4.12加载天地图的几种方法

方法一:使用BaseTileLayer加载天地图 以下是加载二维的js代码,三维也很简单,把MapView换成SceneView即可。 <script> require([ "esri/Map", "esri/request", "esri/Color", "esri/views/MapView", "esri/layers/Ba...

D_lunar的博客 3988

科研党必备:用MATLAB批量处理.mat文件数据的3种高效方法

本文为科研人员提供了使用MATLAB批量处理.mat文件数据的三种高效方法,涵盖智能数据加载、专业可视化与自动化报告生成。通过构建自动化框架、多维度数据画图策略及批量处理流程,帮助用户显著提升数据处理效率与图表专业性,解决海量实验数据的管理与分析难题。

weixin_29089057的博客 71
上一篇: arcpy栅格数据重命名
下一篇: arcgis js(一)显示二维地图
之乎者也哦
博客等级 码龄8年 7165粉丝 72原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值