<template>
<div id='viewDiv'></div>
</template>
<script>
//首先引入esri-loader
import {loadModules} from 'esri-loader';
export default {
name: 'index',
data(){
return{
};
},
mounted() {
//这里的option可以自己选择使用哪个版本
let options = {
url: 'https://js.arcgis.com/4.24/',
css: 'https://js.arcgis.com/4.24/esri/themes/light/main.css'
};
loadModules([
'esri/Map',
'esri/layers/WebTileLayer',
'esri/layers/support/TileInfo',
'esri/views/MapView',
'esri/geometry/SpatialReference',
'esri/geometry/Point',
'esri/layers/WMTSLayer',
'esri/layers/MapImageLayer',
'esri/identity/IdentityManager',
'esri/layers/FeatureLayer',
'dojo/domReady!'
], options).then(
([Map, WebTileLayer, TileInfo, MapView, SpatialReference, Point, WMTSLayer, MapImageLayer, IdentityManager, FeatureLayer]) => {
let token = '***********'; //此处的token需要自己在天地图官网注册,没有token会报错;
//下方的 tileInfo 可以通用,用来定义地图的各种配置
let tileInfo = new TileInfo({
dpi: 90.71428571427429, // 切片方案的每英寸点数(即像素)。
size: 256, // 设置每个瓷砖的高度和宽度为[256, 256]像素。
origin: { // 切片方案的原点。
x: -180,
y: 90
},
spatialReference: {wkid: 4490},
lods: [ //地图放大缩小层级
{'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}
]
});
//ArcGIS API for JavaScript展示天地图有好几种方式,我只用过其中两种
//第一种
let tiledLayerAnno = new WebTileLayer({
urlTemplate: 'http://{subDomain}.tianditu.gov.cn/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=' + token,
subDomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
tileInfo: tileInfo,
spatialReference: {wkid: 4490}
});
//第二种
// const layer = new WMTSLayer({
// url: 'http://t0.tianditu.gov.cn/vec_c/wmts',
// customParameters: {
// tk: token
// }
// });
// const annaLayer = new WMTSLayer({
// url: 'http://t0.tianditu.gov.cn/cva_c/wmts',
// customParameters: {
// tk: token
// }
// });
// const annaLayer2 = new WMTSLayer({
// url: 'https://t0.tianditu.gov.cn/img_c/wmts',
// customParameters: {
// tk: token
// }
// });
//定位到济南市中心
let cityCenter = new Point(116.985, 36.671, new SpatialReference({wkid: 4490}));
let map = new Map({
basemap: {
baseLayers: [tiledLayerAnno]
}
});
let view = new MapView({
container: 'viewDiv',
map: map,
center: cityCenter,
zoom: 12,
ui: {
components: ['zoom', 'compass']
}
});
//点击后地图会高亮
view.on('click', (event) => {
view.hitTest(event).then(response => {
console.log(response);
let result = response.results[0];
if (result && result.graphic) {
let graphic = result.graphic;
//自定义高亮
//这里的几何图形是面状,配置graphic的symbol为fillSymbol
graphic.symbol = {
type: 'simple-fill',
color: 'red',
outline: {
color: [128, 128, 128, 0.5],
width: '0.5px'
}
};
view.graphics.removeAll();//清除上一次点击目标
view.graphics.add(graphic);//添加新的点击目标
}
});
});
// 有时会地图服务需要注册唯一码,
$.ajax({
url: 'http://**********/arcgis/tokens/',
type: 'POST',
data: {
username: '',
password: '',
client: '',
expiration: '',
f: 'json'
},
dataType: 'json',
success: function (data, response, status) {
//获取后,使用下列方法注册,server字段对应要请求的域名
IdentityManager.registerToken({
server: 'http://******/arcgis/rest/services',
token: data.token
});
//自定义弹窗信息
const popupTemplate = {
title: '信息',
content: `
<p>项目名称:{JSXMMC}</p>
<p>时间:{REMARK}</p>
`
};
// 通过FeatureLayer方法还可以进行自定义筛选,通过definitionExpression字段进行筛选
const fl = new FeatureLayer({
url: 'http://******/arcgis/rest/services/SmartConstruction/20210918Construction/FeatureServer/1',
popupTemplate: popupTemplate,
outFields: ['*'],
definitionExpression: `JSXMMC like '%面粉厂%'`
});
map.add(fl);
}
});
}
);
}
};
</script>
<style scoped>
#viewDiv {
position: absolute;
width: 100%;
height: 80vh;
}
</style>
相关推荐
ArcGIS API for Javascript3.23加载天地图
与上一篇提到的方法一样,加载天地图也是通过TiledMapServiceLayer来自定义天地图图层模块。本篇以加载矢量地图为例,讲解如何自定义图层模块以及加载显示图层。加载各类天地图的效果图:【1】矢量图 【2】影像图 【3】地形图 。
ArcGis for JavaScript 加载天地图的WFS服务流程
需要配置代理,代理可以从下面的地址下载,然后部署 https://github.com/Esri/resource-proxy/releases 参考地址: https://blog.youkuaiyun.com/weixin_33720956/article/details/89835658 2、需要把项目的访问地址和配置的代理地址通过nginx代理到一起。 3、完整代码 <!DOCTYPE html> <html> <head> <meta ht..
ArcGIS API for Javascript4.10加载天地图(墨卡托投影)
本篇主要介绍利用ArcGIS API for Javascript 4版本的最新版本4.10加载天地图的矢量底图、影像地图和地形图,以加载矢量地图为例,我们通过扩展BaseTileLayer来自定义矢量地图图层TiandiMapLayer模块。
获取天地图API并调用不同的地图API接口
第一点:我们可以发现地图服务列表,即下面这个表中服务地址的不同点就在于我框选出来的部分,他们代表了不同的地图,就比如矢量底图中的vec_c 和vec_w两种名字代表了两种投影坐标,然后我们看官方给的请求示例地址,即上面的图中我框选的内容img_w代表的是影像底图球面墨卡托投影,所以后面的一串代码中的参数要和img_w对应,LAYER=img,TILEMATRIXSE=w。可以看到矢量图,影像图,注记图等2维地图,还可以看到3D地图api,所以一般就可以满足我们的日常使用了。
Arcgis api for js 3.x调用浙江省天地图
Arcgis api for js 3.x调用浙江省天地图代码坑点 代码 参照浙江天地图的调用说明http://www.zjditu.cn/resource/apihelp,编写代码调用地wmts天图服务。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta n...
arcgis for javascript API3.13 加载天地图卫星影像
采用arcgis for javascript API 3.13, 用其中的esri.layers.TiledMapServiceLayer,这个类可以完成对切片地图的加载,ArcOnline本身自带一个影像地图的,但是缩放后效果不好,所以本人在一个系统中不得不采用天地图的底图。可以看到最后的效果中,有一个天地图的水印。直接上代码了 declare("my.Portlan
Arcgis Api for Js 加载天地图的初步配置工作
(1)天地图默认使用 CGCS2000 坐标系(中国大地坐标系2000),因此实际使用需要时候若使用WGS84,需要转换。(2)天地图的瓦片服务属于 WMTS 标准服务,因此必须通过 WebTileLayer 加载并显式声明 tileInfo,包括完整的 lods 数组。完整代码如下,后续还需要构建配置Map、MapView、TileLayer、BaseMap进行图层加载。(3)构建天地图的基本配置。(2)申请天地图个人密钥。// 底图URL模板。(1)导入相关的模块。
arcgis api for js 克里金插值可自定义涂色方式 克里金插值 添加到天地图
// points : 点数据 ,示例[[经度、纬度、值],[经度、纬度、值]] //color: 颜色 ,示例['#fed985', '#fdbd6d', '#fb9d59', '#f57748', '#e85938', '#d73d29'] //values_list:等级范围(可选,不选的时候默认为等间距划分等级,等级数量等于颜色个数)示例[0,1,2,3,4,5,6]. //world ...
[WebGIS] ArcGIS api for javascript3.21版本加载天地图
介绍 文件 TDTLayerjs TDTLayerjs indexhtml或jspflt前端文件 结果介绍ArcGIS api for Javascript3.21版本加载天地图 目录介绍: js TDTAnnoLayer.js //天地图注解图层 TDTLayer.js //天地图注解图层 index.html //视图文件 下载链接文件TDTLayer.js封装加
Openlayers 教程 15 - openlayers 设置蓝黑色底图,自定义修改天地图颜色
项目大屏展示添加动态地图,获取瓦片,修改颜色来实现加载天地图蓝黑色底图。
arcgis api for js接入天地图影像(墨卡托)(arcgis api for js篇.7)
GIS之家总目录(订阅之前请先查看该博客) GIS之家:openlayer+mapbox+arcgis api for js等相关内容的介绍 地图之家总目录 地图之家:cesium+leaflet+地图数据+地图工具等相关内容的介绍 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <html> <head> <meta charset="utf-8" /> <m.
GIS开发之二维地下管线综合管理系统(Arcgis)第四节 使用arcgis api for js 加载天地图
GIS开发之二维地下管线综合管理系统(Arcgis)第四节 使用arcgis api for js 加载天地图核心js文件调用方式调用结果 这里写目录标题核心js文件调用方式调用结果 核心js文件 #通过定义加载天地图js文件,引用并组织天地图的切片, 天地图的切片地图可以通过esri.layers.TiledMapServiceLayer来加载,如下: define([“dojo/_base/declare”, “esri/layers/tiled”], function (declare) { retu
arcgis api for js接入天地图(经纬度)(arcgis api for js篇.6)
GIS之家总目录(订阅之前请先查看该博客) GIS之家:openlayer+mapbox+arcgis api for js等相关内容的介绍 地图之家总目录 地图之家:cesium+leaflet+地图数据+地图工具等相关内容的介绍 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html style="height: 100%;"> <head> .
ArcGIS API for JavaScript 加载天地图WMTS图层
欢迎访问我的博客GISer空间。 0. 预览 http://huanglii.github.io/TianDiTu/index.html 在GitHub上查看 1. index.html <!DOCTYPE html> <html>...
ArcGIS API for JavaScript4.10实现天地图加载与自定义图层
ArcGIS API for JavaScript 4.10 是一款为开发者提供的一组功能强大的工具和组件,用于构建定制的、交互式的地理空间应用程序。它的推出,标志着地理信息系统(GIS)技术在Web平台上的进一步深化和拓展。本章将带您快速浏览API的主要特点,并简要介绍它如何使Web地图应用开发变得简单。天地图是中国国家测绘地理信息局提供的地理信息服务,它为用户提供包括矢量地图、影像地图、地形图等多种地图服务。
arcgis 天地图风格style
arcgis 天地图风格style,包含:字体库;矢量地图符号库_V2.0 for ArcGIS10;影像地图符号库__V2.0 for ArcGIS10;晕渲地图符号库__V2.0 for ArcGIS10
3316



被折叠的 条评论
为什么被折叠?



