arcgisjsapi如何获取地图中心点坐标?

JavaScript012

arcgisjsapi如何获取地图中心点坐标?,第1张

arcgisjsapi根据屏幕输入的经纬度坐标定位从而获取地图中心点坐标。

1.ArcGIS产品线为用户提供一个可伸缩的,全面的GIS平台。ArcObjects包含了大量的可编程组件,从细粒度的对象(例如,单个的几何对象)到粗粒度的对象(例如与现有ArcMap文档交互的地图对象)涉及面极广,这些对象为开发者集成了全面的GIS功能。

2.每一个使用ArcObjects建成的ArcGIS产品都为开发者提供了一个应用开发的容器,包括桌面GIS(ArcGISDesktop),嵌入式GIS(ArcGISEngine)以及服务端GIS(ArcGISServer)。

ArcGIS JS 4.11后支持加载GLTF/GLB格式的3D模型了,但是对模型有一定要求,具体可以去官方查看。这种方式其实跟开源三维框架Cesium的加载方式类似,后者是更成熟更强大一点。

效果图:

实现步骤:

1.将数据模型保存到项目文件夹。

2.使用ArcGIS JS 4.X 创建Graphic,其中Symbol类型为Object3DSymbol。

ArcGIS JS 4.11 已经可以直接在前端加载GLTF格式3D模型而不需要通过使用ArcGIS Pro软件发布服务,但是如果模型的体积对渲染效率影响较大,50M以上执行地图操作(移动,缩放)基本上会有点不流畅。

1,arcgis_for_javascript的使用方式

arcgis_for_javascript有两种使用方式,AMD和ES

其中AMD方式是用的require(),适合于dojo或者没使用前端框架

如果使用VUE等前端框架,则需要使用ES的方式,用的是import方式

2,在vue中使用arcgis_for_javascript

安装 :

npm install @arcgis/core

使用:

import "@arcgis/core/assets/esri/themes/light/main.css"

import Map from "@arcgis/core/Map"

import TileLayer from "@arcgis/core/layers/TileLayer"

import MapImageLayer from "@arcgis/core/layers/MapImageLayer"

import MapView from "@arcgis/core/views/MapView"

import FeatureLayer from "@arcgis/core/layers/FeatureLayer"

3,初始化的Map,无法赋值给data属性

可以看出,赋值后,变成了Proxy对象,解决的办法是不要在data中提前声明。

4.内网部署

以上虽然可以打开地图,但是,我的需求是部署在内网中,在内网中部署后发现会报错误,请求的还是arcgis的在线地址。问了朋友才知道,还需进行以下操作

1.在package.json包中 安装依赖包 "ncp": "^2.0.0";npm install [email protected] --save

2.在package.json中加入script命令 "copy": "ncp ./node_modules/@arcgis/core/assets ./public/assets"

运行ncp命令,会将arcgis的包拷贝到项目目录 npm run ncp

3.在main.js主程序中引入配置文件,设置配置目录

import esriConfig from "@arcgis/core/config.js"

esriConfig.assetsPath = "./assets"

以上就完成了内网配置