WebGIS地图开发
文章平均质量分 54
啄慕鸟kevinzeng
The world stands aside to let anyone pass who knows where he is going
展开
-
01-Version 4.6 of the ArcGIS API for JavaScript简介
ArcGIS API for JavaScript 4.x系列是Esri推出的新一代JavaScript API,使用这套API,我们可以构建2D和3D为一体的Web GIS地图应用。除了传统的2D地图功能,4.x系列在3D方面是重点,需要重点提醒的是:3D应用由Web三维场景实现,在Web三维场景中,可以叠加的图层的类型包括: 1) ElevationLayer 2) FeatureL...原创 2018-02-08 13:44:01 · 1636 阅读 · 1 评论 -
02-入门基础知识点-对象的属性
JS开发过程中,我们经常会对对象的属性进行获取或者修改。目前,ArcGIS API for JavaScript 4.x的所有对象都支持针对属性的get和set操作。譬如,我们需要获取基础底图的标题,可以通过以下代码实现: 除了上面这种方式,我们还可以通过get()函数来获取对象的属性: 相比第一种方式,get函数将自动检查basemap对象是否存在,不需要再去执行if判断。 同...原创 2018-02-08 13:44:41 · 296 阅读 · 0 评论 -
02-入门知识点-异步请求操作Promise
地图应用开发过程中,客户端经常需要和GIS服务器数据通讯,传统的方式是客户端发送一个请求给服务器端,然后等待服务器返回结果再做下一步的代码执行,也就是同步方式。但是现在,很多情况下是建议采用异步的方式,这样设计的好处是当任务执行时,程序还可以同时执行其他的业务逻辑(譬如我们可能需要同时执行多个服务器请求),不需要一直等待服务器端返回结果,这能提供更好的地图使用体验。目前互联网大部分的应用都采用异步...原创 2018-02-08 13:45:12 · 404 阅读 · 0 评论 -
02-入门知识点-Accessor所有类的基类
如果你非常细心的阅读了《02-入门基础知识点-对象的属性》和《02-入门知识点-异步请求操作Promise》两个章节,你会发现不管是对象属性的获取、设置,还是对象属性值的变化监测,基本在API的所有对象上都有提供了这两个功能。其实这是因为Accessor这个类的缘故。 Accessor是一个抽象类,它提供了访问对象属性以及监视属性变化的机制,API中大部分的类都继承了Accessor。 ...原创 2018-02-08 13:45:32 · 2116 阅读 · 0 评论 -
02-入门知识点-scene layers(场景图层)
在Web三维地图应用开发中,scene layers主要用于呈现三维数据。API中提供了三种图层对象来满足不同类型的三维数据,包括: SceneLayer, PointCloudLayer、IntegratedMeshLayer,具体什么时候该调用哪个图层可以参考下面这个表格: 三维对象模型和带有高程的点要素我们用SceneLayer来展示,点云和实景三维分别用 PointCloudLay...原创 2018-02-08 13:45:49 · 2383 阅读 · 0 评论 -
0301-二维地图开发-添加基础地图并初始化地图范围
这个系列会先把二维地图方面的功能介绍完,之后再进入三维地图的介绍。本文是入门的第一篇文章,只需要按着步骤来就可以。 备注:文中出现的IP地址为我自己的IP地址,复制代码时需要调整为你自己的代码。 1. 首先我们需要创建一个标准的HTML页面<!DOCTYPE html><html><head><meta charset="utf-8"&g...原创 2018-02-08 13:46:18 · 948 阅读 · 0 评论 -
0302-二维地图开发-叠加业务图层
在二维地图上叠加业务数据是一个最基本的功能需求。API提供了很多类型的图层来帮助开发者添加所需要的业务数据。其中最常用的是以下两类: 1. MapImageLayer: - 跟它的名字一样“地图图像图层”,字面理解是负责加载一份地图图像的图层。对应加载ArcGIS Server发布的MapServer服务,每次客户端请求地图服务的时候,GIS服务器根据请求的地图范围,将该范围内的数据生成一张...原创 2018-02-08 13:46:32 · 683 阅读 · 0 评论 -
0303-二维地图开发-业务图层那么多,能不能只在需要的时候才显示
地图开发的过程中,如果我们有很多的资源划分成了不同的图层,那往往有一个很简单的需求就是在需要的时候才显示目标图层,在GIS专业领域称为图层显示控制。早期之前的API版本如果要对图层进行显示控制,需要编写很多的代码来完成,譬如图层显示控制按钮的位置和样式、显示或隐藏的逻辑判断代码等等。但是图层显示控制的关键点只有一个,就是所有的Layer对象都有一个visible属性,这个属性用于控制图层显示或者隐...原创 2018-02-08 13:47:06 · 399 阅读 · 0 评论 -
如何处理格网边界断开不接边的问题
问题背景网格化管理越来越成为城市管理的重要一个工作,很多单位部门都涉及这方面的工作,譬如城管、公安、市政等的部门都会涉及。在实施这项工作之前,往往需要做的一个工作是先绘制网格的范围。绘制网格这个工作如果是专业的测绘机构来实施,那么就不会出现我们今天要探讨的问题。但也有很多单位是自己绘制网格,有些部门绘制出来的网格边界接边做的非常好,但也有些部门在绘制的过程中由于缺少边界的捕捉,导致绘制出来的网...原创 2018-06-28 10:43:04 · 765 阅读 · 0 评论 -
让模型与数据分离,更简单的使用GP服务:空间关联。
背景最近遇到一个需求:需要了解每个经营网格(面图层)中包含了多少个营业网点(点图层)。在GIS来说,这是一个很基本的需求,实现的方式也很多。这里的情况是B/S架构的系统,所以,我们可以直接在SQL层面使用ST_Geometry函数来实现,还可以在前端使用ArcGIS JavaScript API的空间查询来实现。前一种方式,需要写服务端代码,费劲,所以不考虑;后一种需要先查询到网格图层的数据,再...原创 2018-10-12 16:22:02 · 976 阅读 · 0 评论 -
Openlayers 加载ArcGIS Server切片服务(自定义切片方案)
背景最近遇到一个需求,要使用OpenLayer加载ArcGIS Server发布的服务。如果直接拷贝OpenLayer提供的在线官方Demo,然后修改下地图服务地址是跑不通的,这是因为OpenLayer默认加载的ArcGIS服务是规范化的切片方案(从0级到20级,每一级的切片比例尺都是固定的),但是由于现场使用的是自定义的切片方案,所以还需要去调整下代码。关键点在加载ArcGIS Serve...原创 2018-10-15 11:54:05 · 4587 阅读 · 3 评论 -
PublishingTools.GPServer启动报Crashed问题解决
这个问题在官方里已经确认,是由于安装了Microsoft Windows update KB4056894 or the combination of KB4056568 and KB4056897 on Windows Server 2008 R2 and Windows 7导致。目前已经提供了补丁包,包括:ArcGIS Server 10.6, 10.5.1, 10.5, 10.4.1, ...原创 2018-10-17 09:59:05 · 1461 阅读 · 0 评论 -
0306-二维地图开发-地图可视化:简单符号渲染
地图可视化是地图作为信息呈现媒介的一个重要功能。通过可视化,我们可以洞察出地图上呈现的数据特征和它们之间的空间关系。目前做空间可视化这块的越来越精细,有些甚至上升到的艺术的层面。对于地图开发者来说,如果将数据在地图上可视化是入门的一个基础。目前,4.x系列API在可视化化方面提供了非常丰富的接口帮助开发者实现业务功能。在接下来的几个章节中将重点介绍地图可视化相关的API接口。 在API中,要实现...原创 2018-02-11 14:57:55 · 3014 阅读 · 0 评论 -
Web GIS访问ArcGIS安全认证服务代理配置解决方案-IIS版本
概述 在使用ArcGIS的地图服务过程中,为了保障地图服务的安全需要进行安全认证,具体来说有以下两方面的考虑:一、保障用户所访问的地图服务的安全,即只有经过认证的访问者才能使用该地图服务;二、保障服务提供者对服务的管控。 为了能够满足用户的上述目标,ArcGIS Server提供了Token的认证机制和代理机制相结合的解决方案。具体内容分以下两部分:用户需要将所原创 2017-04-06 15:46:23 · 2197 阅读 · 2 评论 -
Web GIS访问ArcGIS安全认证服务代理配置解决方案-Java版本
概述 在使用ArcGIS的地图服务过程中,为了保障地图服务的安全需要进行安全认证,具体来说有以下两方面的考虑:一、保障用户所访问的地图服务的安全,即只有经过认证的访问者才能使用该地图服务;二、保障服务提供者对服务的管控。 为了能够满足用户的上述目标,ArcGISServer提供了Token的认证机制和代理机制相结合的解决方案。具体内容分以下两部分:一、用原创 2014-08-22 08:36:58 · 1474 阅读 · 0 评论 -
在JS API中使用代理访问安全服务时报PKIX path building failed简便解决方案
背景在使用ArcGIS JavaScript API开发应用的过程中,我们经常会使用到代理。目前Esri提供三个版本的代理程序,包括:Java、DoNet和PHP,如下图:访问地址:https://github.com/Esri/resource-proxy 由于个人是Java语言的忠实Fans,所以选择了Java版本。按说明文档的提示,做了相应配置,构建工程目录结构如下:原创 2017-04-06 15:49:48 · 698 阅读 · 0 评论 -
监控点排序核心算法
解决思路及核心算法:将在地图上所画的折线拆分成几个线段(直线),API中的Polyline对象提供了获取每个线段的接口:Flex API中的POLYLINE接口JavaScript API中的POLYLINE接口备注:一条polyline由多个线段组成。计算视频点到折线的垂直点即投影点:核心算法如下:/*** 功能:根据线段的起点、终点和原创 2017-04-06 15:52:35 · 309 阅读 · 0 评论 -
自动生成航线的思路和核心代码
背景 在船舶业务中,航线是重要的要素。传统的航线是在纸质上标识,目前需要将纸质的电子化,即绘制成航线地图。航线数据在原有系统中,是以二维表的方式存储,格式为,例子:釜山/青岛/上海/宁波/香港(CHT/HIT)/盐田/南沙/新加坡/苏伊士运河/比雷埃夫斯(希腊)/拉斯佩齐亚(意大利)/热那亚(意大利)/巴塞罗那(西班牙)/巴伦西亚(西班牙)/比雷埃夫斯(希腊)/苏伊士运河/新加坡原创 2017-04-06 15:53:14 · 2807 阅读 · 0 评论 -
0304-二维地图开发-涂鸦(地图标绘)
能不能在地图上涂个鸦?我们先看下面这张图: 在上面这张图其实是用点、线和多边形几个图形来绘制出来。在地图上绘制点、线和多边形是基本的功能需求,对于开发者来说,经常会用到,譬如在地图上打点标注、绘制行进的线路、标绘安保区域等等,当然你也可以向我这样很二的来个素描。 言归正卷,要绘制简单的几何图形,就得有工具。目前API里提供了两个工具,一个是简单的,一个是高级的。 - 简单的用Sketch...原创 2018-02-08 17:02:25 · 1083 阅读 · 0 评论 -
0305-二维地图开发-算下经常散步的这条路到底有多长(地图测量)
上一小节介绍了在地图上任性涂鸦,画了个人头像,功能是实现了,但是效果凑合。说到绘制,其实它的应用场景还是挺多的,特别是在日常工作的设计环节。譬如:要搞个活动,活动的区域在哪?活动的线路从哪里到哪里?等等。这些都是大家很多日常的工作中都会涉及到的,在地图上打些点、绘个线、标个区域,再把做好的这张图跟参与活动的成员说明,这个沟通方式效率上肯定高很多。所以,不要小看标绘这么个小小的功能。再往大了说,打仗...原创 2018-02-09 11:39:21 · 508 阅读 · 0 评论 -
ArcGIS API for JavaScript 4.10调用安全地图服务
背景系统环境:ArcGIS:10.6.1ArcGIS API for JavaScript :4.10需求描述:Portal和GIS Server联合,同时所访问的地图服务均为安全服务,也就是说服务已经设置了权限控制,只有该用户拥有访问的权限才能调用地图服务。现在需要在前端业务系统中使用安全服务,但是又不想每次打开系统时,手动登录一次Portal。解决思路要使用ArcGIS Ent...原创 2019-01-10 15:54:08 · 2056 阅读 · 1 评论