arcgis js 4.x加载自定义坐标系的arcgis server发布的wms服务

news/2024/11/25 19:47:35/

一、问题描述

一般城市本身用的都是自己定义的城市(本地)坐标系,没有对应公开的EPSG代码,如下图如果直接加载自定义坐标系的wms服务,直接会报错。

 var customProjLayer = new WMSLayer({url: "http://10.1.8.37:6080/arcgis/services/test_polygon_1/MapServer/WMSServer",version: "1.3.0",});

 点击报错连接,可以看到报错详情:大致意思是坐标系统是错误的值,

<ServiceExceptionReport xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.3.0" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd"><ServiceException code="InvalidCRS"> Parameter 'srs(crs)' has wrong value. </ServiceException></ServiceExceptionReport>

我们可以通过http://10.1.8.37:6080/arcgis/services/test_polygon_1/MapServer/WMSServer?SERVICE=WMS&REQUEST=GetCapabilities这个地址查看到,自定义坐标系默认epsg代码为0

 二、问题解决

在arcgis js api中我们看到wmslayer有这个属性

customLayerParameters  

Use this to append different custom parameters to the WMS map requests. The custom layer parameters are applied to GetMap and GetFeatureInfo.

添加不同的wms参数来进行地图的请求。

与之前的代码的区别就是加了这个customLayerParameters  参数,参数为对象,对象里包含一个wms的crs属性,值为自定义坐标系的wkt串,这样就能加载wmslayer了。

 var customProjLayer = new WMSLayer({url: "http://10.1.8.37:6080/arcgis/services/test_polygon_1/MapServer/WMSServer",version: "1.3.0",customLayerParameters: {"crs": "PROJCS[\"CUSTOM_118_CM\",GEOGCS[\"GCS_GRS_1980\",DATUM[\"D_GRS_1980\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Gauss_Kruger\"],PARAMETER[\"False_Easting\",500000.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",118.8333333333333],PARAMETER[\"Scale_Factor\",1.0],PARAMETER[\"Latitude_Of_Origin\",0.0],UNIT[\"Meter\",1.0]]"}});

最终加载效果,多边形为自定义坐标系的wmslayer.

 参考文章:

定义 WMS 服务的自定义投影—ArcGIS Server | ArcGIS Enterprise 文档

WMSLayer | API Reference | ArcGIS Maps SDK for JavaScript 4.27 | ArcGIS Developers


http://www.ppmy.cn/news/786250.html

相关文章

C++的auto类型说明符详解 附易错实例

&#x1f4af; 博客内容&#xff1a;C读取一行内个数不定的整数的方式 &#x1f600; 作  者&#xff1a;陈大大陈 &#x1f680; 个人简介&#xff1a;一个正在努力学技术的准前端&#xff0c;专注基础和实战分享 &#xff0c;欢迎私信&#xff01; &#x1f496; 欢迎大家&…

NLP 自然语言初体验

本资料整理自 Kaggle上的Spooky NLP and Topic Modelling tutorial import base64 import numpy as np import pandas as pd#Plotly imports 一种可视化工具 import plotly.offline as py py.init_notebook_mode(connectedTrue) import plotly.graph_objs as go import plotl…

面试常问集锦——Java基础部分

java基础部分 《我想进大厂》之Java基础夺命连环16问 https://mp.weixin.qq.com/s?__bizMzkzNTEwOTAxMA&mid2247485644&idx1&sndb46ab83196031d8f563585b72a7b511&chksmc2b24031f5c5c927bd125e219d4c2c810254f49ddc28988591978d27fe10a07eac85247bf89e&…

HappyDet安装使用教程

作者&#xff1a;堆堆星 导读 一般的深度学习流程包括数据采集&#xff0c;数据标注&#xff0c;训练&#xff0c;调参&#xff0c;测试&#xff0c;部署。流程繁琐&#xff0c;且周期极长。HappyDet以深度学习中目标检测算法为核心&#xff0c;开发了一套本地的全流程目标检测…

已经配置了`JAVA_HOME`环境变量,但Tomcat仍然提示未配置该变量

1. 检查JAVA_HOME变量的正确性&#xff1a;确保JAVA_HOME的值指向Java JDK的安装路径&#xff0c;而不是JRE的路径。例如&#xff0c;JAVA_HOME应该是类似于C:\Program Files\Java\jdk1.8.0_XXX的路径&#xff0c;而不是C:\Program Files\Java\jre1.8.0_XXX。 2. 检查环境变量…

计算机软件打开为什么跑一边,显示问题我的电脑有时新打开窗口总是跑到右边 – 手机爱问...

2009-08-31 不知道什么缘故&#xff0c;最近电脑桌面像凹凸镜那样在中间部分凹进去&#xff0c;字都扭成一团没法看了&#xff0c;整个桌面都变形了。还有有时会出现像电波干扰的那种情况&#xff0c;屏幕震动不稳。 我试过点右键-属性-桌面&#xff0c;把位置拉伸&#xff0c;…

android 电脑屏幕扩展,屏幕扩展与安卓版体验

屏幕扩展与安卓版体验 此次的YOGA BOOK采用了10.1英寸1080P HD分辨率的触控IPS面板&#xff0c;百分之70RGB色域&#xff0c;400尼特最大亮度&#xff0c;兼顾丰富色彩、高可视角度、大图幅和高锐利特点&#xff0c;素质相当不错。 YOGA BOOK屏幕素质了得 下面我们来讲一讲送测…

计算机开机民鸣叫不能启动,计算机开机并发出警报,详细教会您如果计算机长时间鸣叫怎么办...

使用计算机时,我的朋友经常在打开计算机电源时听到一声长鸣,然后不断发出蜂鸣声. 到底是怎么回事?实际上,这种现象通常是由内存问题引起的. 如果计算机在打开电源时持续发出哔哔声,该怎么办?下面,编辑器将向您说明打开计算机电源后如何处理长时间警报. 使用计算机的用户…