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"
以上就完成了内网配置