开发环境: arcgis jsapi版本4.9 由于我们这套代码是基于vue,webpack开发的,会有少数vue代码,但总体不影响 里面还有些我们公司的js库和html css,给出的代码不能百分百直接运行,主要还是接口的总体介绍 代码中常见且不知来源的变量说明: this.map和this.mapView:就是地图的map和mapView this.apiInstance:这是公司框架封装的用于实例化arcgis jsapi对象的,不是必须的,例如new this.apiInstance.E…
点 point: function () { //通过wkt生成点 //wkt,代表点的坐标 let wkt = "POINT(113.566806 22.22445)"; //wkt转点几何对象 // * @param apiInstance api // * @param wkt wkt // * @param sr 空间参考 let point = mapUtil.geometry.wktToPoint(this.apiInstance, wkt, this.mapView.sp…
//图层相关demo layerFun: function () { //获取地图的所有图层(不包括的图层类型:底图图层(basemaps)) let layers = this.map.layers; //获取地图的所有图层(包括所有图层类型) let alllayers = this.map.allLayers; //PS:以上的类型都是Collection<Layer>(看起来像java的泛型list),不是js原生的东西,详细用法请看arcgis jsapi官方文档 //传统遍历方法…
jsapi也有提供高亮的实现接口,但这里没用,而用的是一种改变图形(graphic)样式的思路 本文实现效果是:地图有多个面图形,当鼠标移动到面的上方,面高亮显示,鼠标移出后高亮解除 初始化 //高亮初始化 highlightInit: function () { //添加一个图形图层存放要高亮的图形 let layer = new this.apiInstance.GraphicsLayer({ id: "highlightLayer", //空间参考,一般要跟地图的一样 spati…
这里说的tomcat切片,是指arcgis server切片后,把切片图片文件用tomcat发布(其他任意web服务器发布都行) //添加tomcat切片图层 addTomcatTileLayer: function () { //图层配置 let layerConfig = { //切片所在的url,url结尾应该是 _alllayers/ url: "http://xxx/Layers/_alllayers/", //图层范围 tileExtent: "-0.5,-973…
jsapi有提供popup功能,但缺点很多,例如地图上只能同时显示一个popup,popup内容有限制等 本文提供另一个方法,原理不用jsapi,在地图外用一个普通的div放在地图上面,再监听地图的鼠标移动等时间控制这div跟着地图联动 本文代码可能存在跟框架的css等绑定,不一定能直接运行,在此只提供实现思路 本文代码用到vue的绑定 初始化,写入popup的数据也在此 popupInit: function () { //popup初始化 //填入popup的数据 this.popupInf…
symbol: function () { //线样式 //样式详情请看官方文档 let style = { //线颜色,支持多种格式: //CSS color string:例如"dodgerblue"; //HEX:例如"#33cc33" //RGBA,最后一个值是透明度,值为1-0:例如[51, 204, 51, 0.3] color: "dodgerblue", //线宽,支持多种格式: //pt,可以写成"4pt"或…
PS:用代码画点这样写是为了跟后面的用鼠标画点线面区分出来 画点 drawPointGraphic: function () { //点有多种样式:一般的点,显示文字,显示图片 //一般的点 let wkt = "POINT(113.566806 22.22445)"; //样式 //PS:其他高级样式配置请看样式的章节 let style = { //点样式,值有:circle=圆,cross=十字,diamond=菱形,square=正方形,x=X style: "cir…
初始化,每个map执行一次 PS:画点也差不多,都是用SketchViewModel,因此本demo没有专门写画点的 drawPolygonInit: function () { //画几何对象初始化 //新建一个图形图层用于存放画图过程中的图形 let layer = new this.apiInstance.GraphicsLayer({ //空间参考,一般要跟地图的一样 spatialReference: this.mapView.spatialReference, }); //图层添加到…
初始化,每个map执行一次就行 drawPolylineInit: function () { //画几何对象初始化 //新建一个图形图层用于存放画图过程中的图形 let layer = new this.apiInstance.GraphicsLayer({ //空间参考,一般要跟地图的一样 spatialReference: this.mapView.spatialReference, }); //图层添加到地图 //PS:GraphicsLayer也是图层之一,因此也支持通用的图层功能 t…