arcgis开发记录
目录
文章目录
- @[toc]
- **arcgis JavaScript API安装**
- 1. arcgisAPI下载地址:https://developers.arcgis.com/downloads/
- 2. 4.4版本API:本地配置
- 3. 3.18版本修改方法
- **angular2中加载arcgis JS API**
- ** arcgis加载图层 并显示图层上点的信息**
- **使用图层上默认的参数,来显示图层上点的信息**
- **更好的方案: 使用 arcgis 地图的 点击事件,来个性化弹窗**
- **添加图层的时候可以调用方法,把所有点的 信息全部得到**
- **arcgis地图坐标系**。
- 没毛病
文章目录
- @[toc]
- **arcgis JavaScript API安装**
- 1. arcgisAPI下载地址:https://developers.arcgis.com/downloads/
- 2. 4.4版本API:本地配置
- 3. 3.18版本修改方法
- **angular2中加载arcgis JS API**
- ** arcgis加载图层 并显示图层上点的信息**
- **使用图层上默认的参数,来显示图层上点的信息**
- **更好的方案: 使用 arcgis 地图的 点击事件,来个性化弹窗**
- **添加图层的时候可以调用方法,把所有点的 信息全部得到**
- **arcgis地图坐标系**。
- 没毛病
arcgis JavaScript API安装
1. arcgisAPI下载地址:https://developers.arcgis.com/downloads/
- 打开网站后选择‘ArcGIS API for JavaScript’,如果不要最新版则点击后面的‘All versions’,选择一个自己需要的版本。
- 4.4版本的下载地址
2. 4.4版本API:本地配置
- 下载好后,把解压后的文件中 library目录拷贝到 angular2的src目录下(与index.html同级),
- 打开文件library/4.4/dojo/dojo.js
baseUrl:"http://localhost:3000/library/4.4/dojo",hasCache:{"config-deferredInstrumentation":0,"config-selectorEngine":"acme",
搜索内容 https://[HOSTNAME_AND_PATH_TO_JSAPI]dojo 把这个字符串替换成 http://localhost:3000/library/4.4/dojo
保存后退出。
- 打开文件library/4.4/init.js
搜索内容 https://[HOSTNAME_AND_PATH_TO_JSAPI]dojo 把这个字符串替换成 http://localhost:3000/library/4.4/dojo
保存后退出。
3. 3.18版本修改方法
- 打开文件library/4.4/dojo/dojo.js
baseUrl:((location.protocol === 'http:' || location.protocol === 'https:') ? location.protocol : 'http:') + '//' + "localhost:3000/library/3.18/dojo",hasCache:{"config-selectorEngine":"acme",
搜索内容 [HOSTNAME_AND_PATH_TO_JSAPI] 把这个字符串替换成 localhost:3000/library/4.4/dojo
保存后退出。
***注意:***一定不要加http://
- 打开文件library/4.4/init.js
搜索内容 [HOSTNAME_AND_PATH_TO_JSAPI] 把这个字符串替换成 localhost:3000/library/4.4/dojo
保存后退出。
***注意:***一定不要加http://
- 测试API是否成功
启动服务后,在浏览器中输入网址: http://localhost:3000/library/4.4/init.js
如果有返货内容则说明部署成功。
angular2中加载arcgis JS API
angular2里面需要先安装 arcgis 的包
# 介绍: https://www.npmjs.com/package/angular2-esri-loader
npm install angular2-esri-loader esri-loader
在组件中加载 arcgis的 API, 加载好后就可以在其他方法中直接使用了:
private loadEsriModules() {//来自:https://github.com/StefanNieuwenhuis/awesome-mapping-appthis.esriLoader.load({// url: 'https://js.arcgis.com/4.4/'}).then(() => {this.esriLoader.loadModules(['esri/Map','esri/layers/MapImageLayer', //地图 图层服务'esri/views/MapView', //2D地图'esri/views/SceneView', //3D地图//https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html#source"esri/layers/FeatureLayer", //提取图层服务"esri/widgets/Home", //在视图中出现一个回到原点的按钮Home"esri/widgets/BasemapGallery","esri/widgets/Expand","esri/widgets/Search",//地点搜索"esri/widgets/ScaleBar",//比例尺"esri/core/watchUtils", //鹰眼图"dojo/dom", //鹰眼图]).then(([Map, MapImageLayer, MapView, SceneView, FeatureLayer, Home,BasemapGallery, Expand, Search, ScaleBar, watchUtils, dom]) => {this.esriMap = Map;this.esriMapImageLayer = MapImageLayer;this.esriMapView = MapView;this.esriSceneView = SceneView;this.esriFeatureLayer = FeatureLayer;this.esriHome = Home;this.esriBasemapGallery = BasemapGallery;this.esriExpand = Expand;this.esriSearch = Search;this.esriScaleBar = ScaleBar;this.esriwatchUtils = watchUtils;this.esridom = dom;this.arcGisLoadFinish = true;})})}
** arcgis加载图层 并显示图层上点的信息**
参考链接:https://developers.arcgis.com/javascript/latest/sample-code/featurelayerview-query/index.html
使用图层上默认的参数,来显示图层上点的信息
addMapLayre() {this.view.map.removeAll();let popupTemplate = {title: 'Cities',content: "<p> 城市: {CITY_NAME}</p>" +"<p> LABEL_FLAG: {LABEL_FLAG}</p>" +"<p> OBJECTID: {OBJECTID}</p>" +"<p> POP: {POP}</p>" +"<p> POP_CLASS: {POP_CLASS}</p>" +"<p> POP_RANK: {POP_RANK}</p>"};for (let e of this.layerBtnListsSelect) {if (e.data && e.data.url) {//https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html#properties-summarylet layer = new this.esriFeatureLayer({outFields: ["*"], //把每个点的所有属性都查询出来。popupTemplate: popupTemplate, //弹窗模板url: e.data.url //图层服务地址});this.view.map.add(layer); // adds the layer to the map//下面注销掉的代码可以查看全部点的信息// this.view.whenLayerView(layer).then(function (lyrView) {// lyrView.watch("updating", function (val) {// if (!val) { // wait for the layer view to finish updating// lyrView.queryFeatures().then(function (results) {// console.log(results); // prints all the client-side graphics to the console// });// }// });// });}}}
使用这个方法好处 :简单,方便。
坏处: 1. 要根据不同的图层来制作不同的弹窗模板。 2. 弹窗样式固定。
更好的方案: 使用 arcgis 地图的 点击事件,来个性化弹窗
参考链接:https://geonet.esri.com/message/609517#comment-609517
https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#on
let _view = this.view;
this.view.on("click", function (event) {_view.hitTest(event.screenPoint).then(function (response) {var graphics = response.results;graphics.forEach(function (graphic) {console.log(graphic);});});
});
在这里使用view 的 on事件,当点击地图上一个点的时候,如果这个点事图层上的点,则会出发这个事件, 如果不是,则没有有反应。
一个例子: https://developers.arcgis.com/javascript/latest/sample-code/view-hittest/index.html
添加图层的时候可以调用方法,把所有点的 信息全部得到
https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html#querying
// returns all the graphics from the layer view
// lyr: 创建的图层 new FeatureLayer({...})
view.whenLayerView(lyr).then(function(lyrView){lyrView.watch("updating", function(val){if(!val){ // wait for the layer view to finish updatinglyrView.queryFeatures().then(function(results){console.log(results); // prints all the client-side graphics to the console});}});
});
arcgis地图坐标系。
参考链接:
https://developers.arcgis.com/javascript/3/jsapi/screenpoint-amd.html
https://developers.arcgis.com/javascript/latest/api-reference/esri-Viewpoint.html
没毛病
相关文章:
arcgis开发记录
目录 文章目录 [toc]**arcgis JavaScript API安装**1. arcgisAPI下载地址:https://developers.arcgis.com/downloads/2. 4.4版本API:本地配置3. 3.18版本修改方法 **angular2中加载arcgis JS API**** arcgis加载图层 并显示图层上点的信息****使用图层上…...
RPA-UiBot6.0数据整理机器人—杂乱数据秒变报表
前言 友友们是否常常因为杂乱的数据而烦恼?数据分类、排序、筛选这些繁琐的任务是否占据了友友们的大部分时间?这篇博客将为友友们带来一个新的解决方案,让我们共同学习如何运用RPA数据整理机器人,实现杂乱数据的快速整理,为你的工作减负增效! 在这里,友友们将了…...
Application UI
本节包含关于如何用DevExpress控件模拟许多流行的应用程序ui的教程。 Windows 11 UI Windows 11和最新一代微软Office产品启发的UI。 Office Inspired UI Word、Excel、PowerPoint和Visio等微软Office应用程序启发的UI。 如何:手动构建Office风格的UI 本教程演示…...
关于 Redis 中集群
哨兵机制中总结到,它并不能解决存储容量不够的问题,但是集群能。 广义的集群:只要有多个机器,构成了分布式系统,都可以称之为一个“集群”,例如主从结构中的哨兵模式。 狭义的集群:redis 提供的…...
C++必修:探索C++的内存管理
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. C/C的内存分布 我们首先来看一段代码及其相关问题 int globalVar 1; static…...
python列表---基本语法(浅拷贝,深拷贝等)
文章目录 引言:列表的注意事项1 list中的浅拷贝与深拷贝1.1浅拷贝(Shallow Copy)浅拷贝的方法浅拷贝的效果1.2深拷贝(Deep Copy)深拷贝的方法深拷贝的效果1.3 总结:浅拷贝 vs 深拷贝1.4 为什么浅拷贝顶层元素如果是不可变数据就不能共享,不是传的是引用就相当于传的是地…...
go语言接口之sort.Interface接口
排序操作和字符串格式化一样是很多程序经常使用的操作。尽管一个最短的快排程序只要15 行就可以搞定,但是一个健壮的实现需要更多的代码,并且我们不希望每次我们需要的时候 都重写或者拷贝这些代码。 幸运的是,sort包内置的提供了根据一些排序…...
android:text 总为大写字母的原因
当设置某个 Button 的 text 为英文时,界面上显示的是该英文的大写形式(uppercase)。例如: <Buttonandroid:id"id/btn"android:layout_width"wrap_content"android:layout_height"wrap_content"…...
CISCN2024 初赛 wp 部分复现(Re)
Misc 1. 火锅链观光打卡 答题即可 Re 1. asm_re 感谢智谱清言,可以读出大致加密算法 这是输入 这是加密部分 这里判断 找到疑似密文的部分,手动改一下端序 #asm_wp def dec(char):return (((char - 0x1E) ^ 0x4D) - 0x14) // 0x50 #return (ord(cha…...
YOLOv10、YOLOv9 和 YOLOv8 在实际视频中的对比
引言 目标检测技术是计算机视觉领域的核心任务之一,YOLO(You Only Look Once)系列模型凭借其高效的检测速度和准确率成为了业界的宠儿。本文将详细对比YOLOv10、YOLOv9和YOLOv8在实际视频中的表现,探讨它们在性能、速度和实际应用…...
热题系列章节5
169. 多数元素 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出:…...
ArcGIS for js 4.x 加载图层
二维: 1、创建vue项目 npm create vitelatest 2、安装ArcGIS JS API依赖包 npm install arcgis/core 3、引入ArcGIS API for JavaScript模块 <script setup> import "arcgis/core/assets/esri/themes/light/main.css"; import Map from arcgis…...
Three.js和Babylon.js,webGL中的对比效果分析!
hello,今天分享一些three.js和babylon.js常识,为大家选择three.js还是babylon.js做个分析,欢迎点赞评论转发。 一、Babylon.js是什么 Babylon.js是一个基于WebGL技术的开源3D游戏引擎和渲染引擎。它提供了一套简单易用的API,使开发…...
flask实现抽奖程序(一)
后端代码E:\LearningProject\lottery\app.py from flask import Flask, render_template import randomapp Flask(__name__)employees [赵一, 钱二, 孙三, 李四, 周五, 吴六, 郑七, 王八]app.route(/) def hello_world():return render_template(index.html, employeesemplo…...
Python中数据库连接的管理
在现代应用程序中,数据库是一个至关重要的组件。无论是小型应用还是大型分布式系统,良好的数据库连接管理都是确保系统高效、可靠运行的关键。本文将详细介绍在Python中管理数据库连接的最佳实践和技术,包括连接池、ORM(对象关系映…...
【JAVA技术】mybatis 数据库敏感字段加解密方案
引言:自从有公司项目前2年做了三级等保,每年一度例行公事,昨天继续配合做等保测试。这2天比较忙,这里整理之前写的一篇等保技术文章。 正文: 现在公司项目基本用mybatis实现,但由于项目跨度年份比较久&…...
Collections工具类及其案例
package exercise;public class Demo1 {public static void main(String[] args) {//可变参数//方法形参的个数是可以发生变化的//格式:属性类型...名字//int...argsint sum getSum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);System.out.println(sum);}//底层:可…...
Duck Bro的第512天创作纪念日
Tips:发布的文章将会展示至 里程碑专区 ,也可以在 专区 内查看其他创作者的纪念日文章 我的创作纪念日第512天 文章目录 我的创作纪念日第512天一、与CSDN平台的相遇1. 为什么在CSDN这个平台进行创作?2. 创作这些文章是为了赚钱吗?…...
【机器学习】GPT-4中的机器学习如何塑造人类与AI的新对话
🚀时空传送门 🔍引言📕GPT-4概述🌹机器学习在GPT-4中的应用🚆文本生成与摘要🎈文献综述与知识图谱构建🚲情感分析与文本分类🚀搜索引擎优化💴智能客服与虚拟助手…...
晨控CK-UR12-E01与欧姆龙NX/NJ系列EtherNet/IP通讯手册
晨控CK-UR12-E01与欧姆龙NX/NJ系列EtherNet/IP通讯手册 晨控CK-UR12-E01 是天线一体式超高频读写器头,工作频率默认为902MHz~928MHz,符合EPC Global Class l Gen 2/IS0-18000-6C 标准,最大输出功率 33dBm。读卡器同时…...
Swift构造过程介绍
Swift 构造过程概述Swift 的构造过程是实例化类、结构体或枚举时的重要机制。构造过程通过构造器(init)实现,确保实例在首次使用前完成正确的初始化。Swift 的构造器无需返回值,其主要任务是初始化存储属性。默认构造器如果结构体…...
Phi-3-vision-128k-instruct行业落地:建筑图纸要素提取与合规性初筛案例
Phi-3-vision-128k-instruct行业落地:建筑图纸要素提取与合规性初筛案例 1. 模型简介与部署验证 Phi-3-Vision-128K-Instruct是一个轻量级的多模态模型,专注于高质量的文本和视觉数据处理能力。该模型支持128K的超长上下文窗口,特别适合处理…...
VS2013环境下Snap7 DLL静态调用全攻略:从配置到实战读写PLC数据
VS2013环境下Snap7 DLL静态调用全攻略:从配置到实战读写PLC数据 在工业自动化领域,西门子PLC作为核心控制设备,其通信接口的开发一直是工程师关注的重点。Snap7作为一个开源的通信库,为开发者提供了与西门子PLC进行高效数据交互的…...
Uniapp小程序微信登录实战:FastAPI后端如何安全处理AppSecret和session_key
Uniapp小程序微信登录实战:FastAPI后端安全架构设计指南 在移动互联网时代,微信小程序已成为企业服务用户的重要入口。根据腾讯2023年财报显示,微信小程序日活跃用户突破6亿,年交易额增长超过40%。在这样的背景下,如何…...
智能问数技术路线对比
引言2025-2026 年,智能问数(Natural Language Query)市场迎来爆发式增长。从互联网大厂到传统 BI 厂商,从国际巨头到创业公司,各玩家纷纷入局。但技术路线百花齐放的同时,企业决策者面临核心问题࿱…...
探索硬件健康监测:开源工具的技术实践与价值解析
探索硬件健康监测:开源工具的技术实践与价值解析 【免费下载链接】LibreHardwareMonitor Libre Hardware Monitor, home of the fork of Open Hardware Monitor 项目地址: https://gitcode.com/GitHub_Trending/li/LibreHardwareMonitor 2023年某数据中心因C…...
从JAR到EXE:利用launch4j-maven-plugin为Java应用打造原生Windows体验
1. 为什么需要将Java应用打包成EXE文件? 很多Java开发者都遇到过这样的尴尬:辛辛苦苦开发了一个桌面应用,发给朋友或客户使用时,对方却一脸茫然地问"怎么打开这个jar文件?"或者"为什么双击没反应&#…...
3大突破如何重塑Web机器学习开发?Transformers.js移动端AI框架深度解析
3大突破如何重塑Web机器学习开发?Transformers.js移动端AI框架深度解析 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: htt…...
FlowState Lab教育行业解决方案:个性化学习材料与智能答疑
FlowState Lab教育行业解决方案:个性化学习材料与智能答疑 1. 教育行业的痛点与机遇 在线教育行业近年来发展迅猛,但普遍面临几个核心挑战。首先是教学资源同质化严重,同一套教材和习题被分发给不同水平的学生,导致基础薄弱的学…...
影墨·今颜小红书模型计算机组成原理教学案例:用AI讲解CPU工作原理
影墨今颜小红书模型计算机组成原理教学案例:用AI讲解CPU工作原理 作为一名在计算机体系结构领域摸爬滚打了多年的工程师,我深知《计算机组成原理》这门课对很多学生来说有多“劝退”。那些抽象的寄存器、复杂的流水线、绕来绕去的寻址方式,光…...
