解读WebGIS应用开发与领域应用
文章平均质量分 53
专注于:WebGIS地图应用开发、GIS疑难杂症解决、解读GIS在公共安全、电力、电信、卫生和应急领域的应用。
啄慕鸟kevinzeng
The world stands aside to let anyone pass who knows where he is going
展开
-
A101-解读GIS与情报分析:"锁定案发周边嫌疑车辆"
前序:本故事纯属虚构,如有雷同,还望海涵! 现在买一辆车越来越便宜,租一辆车也越来越方便,城市中利用车辆作为交通工具作案的情况”时有发生”。本文将以如何利用地图锁定案发周边嫌疑车辆为例,解读地图在驾车作案系列案件中的“一点作用”,希望能够给一线情报分析师缩小排查范围提供一点使用地图的思路。当然,如果能帮助到大家早下班、不加班那就阿弥陀佛了。 先来看一个case: 在这个case中,发生了...原创 2018-02-11 17:57:46 · 480 阅读 · 0 评论 -
0306-二维地图开发-地图可视化:简单符号渲染
地图可视化是地图作为信息呈现媒介的一个重要功能。通过可视化,我们可以洞察出地图上呈现的数据特征和它们之间的空间关系。目前做空间可视化这块的越来越精细,有些甚至上升到的艺术的层面。对于地图开发者来说,如果将数据在地图上可视化是入门的一个基础。目前,4.x系列API在可视化化方面提供了非常丰富的接口帮助开发者实现业务功能。在接下来的几个章节中将重点介绍地图可视化相关的API接口。 在API中,要实现...原创 2018-02-11 14:57:55 · 2982 阅读 · 0 评论 -
0305-二维地图开发-算下经常散步的这条路到底有多长(地图测量)
上一小节介绍了在地图上任性涂鸦,画了个人头像,功能是实现了,但是效果凑合。说到绘制,其实它的应用场景还是挺多的,特别是在日常工作的设计环节。譬如:要搞个活动,活动的区域在哪?活动的线路从哪里到哪里?等等。这些都是大家很多日常的工作中都会涉及到的,在地图上打些点、绘个线、标个区域,再把做好的这张图跟参与活动的成员说明,这个沟通方式效率上肯定高很多。所以,不要小看标绘这么个小小的功能。再往大了说,打仗...原创 2018-02-09 11:39:21 · 468 阅读 · 0 评论 -
0304-二维地图开发-涂鸦(地图标绘)
能不能在地图上涂个鸦?我们先看下面这张图: 在上面这张图其实是用点、线和多边形几个图形来绘制出来。在地图上绘制点、线和多边形是基本的功能需求,对于开发者来说,经常会用到,譬如在地图上打点标注、绘制行进的线路、标绘安保区域等等,当然你也可以向我这样很二的来个素描。 言归正卷,要绘制简单的几何图形,就得有工具。目前API里提供了两个工具,一个是简单的,一个是高级的。 - 简单的用Sketch...原创 2018-02-08 17:02:25 · 1052 阅读 · 0 评论 -
0303-二维地图开发-业务图层那么多,能不能只在需要的时候才显示
地图开发的过程中,如果我们有很多的资源划分成了不同的图层,那往往有一个很简单的需求就是在需要的时候才显示目标图层,在GIS专业领域称为图层显示控制。早期之前的API版本如果要对图层进行显示控制,需要编写很多的代码来完成,譬如图层显示控制按钮的位置和样式、显示或隐藏的逻辑判断代码等等。但是图层显示控制的关键点只有一个,就是所有的Layer对象都有一个visible属性,这个属性用于控制图层显示或者隐...原创 2018-02-08 13:47:06 · 372 阅读 · 0 评论 -
0302-二维地图开发-叠加业务图层
在二维地图上叠加业务数据是一个最基本的功能需求。API提供了很多类型的图层来帮助开发者添加所需要的业务数据。其中最常用的是以下两类: 1. MapImageLayer: - 跟它的名字一样“地图图像图层”,字面理解是负责加载一份地图图像的图层。对应加载ArcGIS Server发布的MapServer服务,每次客户端请求地图服务的时候,GIS服务器根据请求的地图范围,将该范围内的数据生成一张...原创 2018-02-08 13:46:32 · 635 阅读 · 0 评论 -
0301-二维地图开发-添加基础地图并初始化地图范围
这个系列会先把二维地图方面的功能介绍完,之后再进入三维地图的介绍。本文是入门的第一篇文章,只需要按着步骤来就可以。 备注:文中出现的IP地址为我自己的IP地址,复制代码时需要调整为你自己的代码。 1. 首先我们需要创建一个标准的HTML页面<!DOCTYPE html><html><head><meta charset="utf-8"&g...原创 2018-02-08 13:46:18 · 925 阅读 · 0 评论 -
02-入门基础知识点-对象的属性
JS开发过程中,我们经常会对对象的属性进行获取或者修改。目前,ArcGIS API for JavaScript 4.x的所有对象都支持针对属性的get和set操作。譬如,我们需要获取基础底图的标题,可以通过以下代码实现: 除了上面这种方式,我们还可以通过get()函数来获取对象的属性: 相比第一种方式,get函数将自动检查basemap对象是否存在,不需要再去执行if判断。 同...原创 2018-02-08 13:44:41 · 274 阅读 · 0 评论 -
02-入门知识点-scene layers(场景图层)
在Web三维地图应用开发中,scene layers主要用于呈现三维数据。API中提供了三种图层对象来满足不同类型的三维数据,包括: SceneLayer, PointCloudLayer、IntegratedMeshLayer,具体什么时候该调用哪个图层可以参考下面这个表格: 三维对象模型和带有高程的点要素我们用SceneLayer来展示,点云和实景三维分别用 PointCloudLay...原创 2018-02-08 13:45:49 · 2294 阅读 · 0 评论 -
02-入门知识点-Accessor所有类的基类
如果你非常细心的阅读了《02-入门基础知识点-对象的属性》和《02-入门知识点-异步请求操作Promise》两个章节,你会发现不管是对象属性的获取、设置,还是对象属性值的变化监测,基本在API的所有对象上都有提供了这两个功能。其实这是因为Accessor这个类的缘故。 Accessor是一个抽象类,它提供了访问对象属性以及监视属性变化的机制,API中大部分的类都继承了Accessor。 ...原创 2018-02-08 13:45:32 · 2085 阅读 · 0 评论 -
02-入门知识点-异步请求操作Promise
地图应用开发过程中,客户端经常需要和GIS服务器数据通讯,传统的方式是客户端发送一个请求给服务器端,然后等待服务器返回结果再做下一步的代码执行,也就是同步方式。但是现在,很多情况下是建议采用异步的方式,这样设计的好处是当任务执行时,程序还可以同时执行其他的业务逻辑(譬如我们可能需要同时执行多个服务器请求),不需要一直等待服务器端返回结果,这能提供更好的地图使用体验。目前互联网大部分的应用都采用异步...原创 2018-02-08 13:45:12 · 373 阅读 · 0 评论 -
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 · 1595 阅读 · 1 评论 -
Web GIS访问ArcGIS安全认证服务代理配置解决方案-Java版本
概述 在使用ArcGIS的地图服务过程中,为了保障地图服务的安全需要进行安全认证,具体来说有以下两方面的考虑:一、保障用户所访问的地图服务的安全,即只有经过认证的访问者才能使用该地图服务;二、保障服务提供者对服务的管控。 为了能够满足用户的上述目标,ArcGISServer提供了Token的认证机制和代理机制相结合的解决方案。具体内容分以下两部分:一、用原创 2014-08-22 08:36:58 · 1456 阅读 · 0 评论 -
Web GIS访问ArcGIS安全认证服务代理配置解决方案-IIS版本
概述 在使用ArcGIS的地图服务过程中,为了保障地图服务的安全需要进行安全认证,具体来说有以下两方面的考虑:一、保障用户所访问的地图服务的安全,即只有经过认证的访问者才能使用该地图服务;二、保障服务提供者对服务的管控。 为了能够满足用户的上述目标,ArcGIS Server提供了Token的认证机制和代理机制相结合的解决方案。具体内容分以下两部分:用户需要将所原创 2017-04-06 15:46:23 · 2179 阅读 · 2 评论 -
在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 · 673 阅读 · 0 评论 -
监控点排序核心算法
解决思路及核心算法:将在地图上所画的折线拆分成几个线段(直线),API中的Polyline对象提供了获取每个线段的接口:Flex API中的POLYLINE接口JavaScript API中的POLYLINE接口备注:一条polyline由多个线段组成。计算视频点到折线的垂直点即投影点:核心算法如下:/*** 功能:根据线段的起点、终点和原创 2017-04-06 15:52:35 · 291 阅读 · 0 评论 -
自动生成航线的思路和核心代码
背景 在船舶业务中,航线是重要的要素。传统的航线是在纸质上标识,目前需要将纸质的电子化,即绘制成航线地图。航线数据在原有系统中,是以二维表的方式存储,格式为,例子:釜山/青岛/上海/宁波/香港(CHT/HIT)/盐田/南沙/新加坡/苏伊士运河/比雷埃夫斯(希腊)/拉斯佩齐亚(意大利)/热那亚(意大利)/巴塞罗那(西班牙)/巴伦西亚(西班牙)/比雷埃夫斯(希腊)/苏伊士运河/新加坡原创 2017-04-06 15:53:14 · 2652 阅读 · 0 评论 -
OpenSSL生成自签名证书
1.密钥对openssl genrsa -des3 -out gisportal.key 2048 2.签名请求openssl req -new -key gisportal.key -out gisportal.csr -subj"/C=CN/ST=GuangXi/L=NanNing/O=Esri/OU=IT/CN=gisportal.nns.gx" 3.签名op原创 2017-08-02 11:04:22 · 442 阅读 · 0 评论 -
取消SDE用户权限过大的方法
在Oracle中创建了空间数据库之后,默认会创建一个SDE用户,如果是直接使用ArcGIS桌面软件中的【CreateEnterpriseGeodatabase】工具创建,那么默认会赋予SDE一个select any table权限,SDE用户有了这个权限,就可以访问其他用户的表,这对于数据管理来说是不安全的。另外,在ArcGIS桌面软件中连接SDE空间库时,由于这个权限的存在,会直接看到其他用户的原创 2017-06-09 11:03:48 · 1606 阅读 · 0 评论 -
Linux操作系统下配置 ArcGIS Server 连接SDE空间库
ArcGIS10.1以后连接SDE都是采用直连的方式,如果在Linux环境中安装了ArcGIS Server,那么需要同时在此机器上安装相应的数据库客户端,这样才能确保连接到SDE。同时,还需要修改安装ArcGIS Server时所用的用户的.bash_profile 文件。具体的修改内容我们可以参考ArcGIS Server安装目录下的init_user_param.sh 脚本,里面提供了相应的原创 2017-06-21 09:12:43 · 631 阅读 · 0 评论 -
在Oracle上创建SDE空间库的规范化流程
创建表空间CREATE TABLESPACE sdetablespace DATAFILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SDEDATA01.DBF' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE原创 2017-10-17 09:46:59 · 3415 阅读 · 0 评论 -
隐藏WebAppBuilder构建器中地图右下角esri的logo
问题在使用Web AppBuilder构建应用的过程中,默认情况下,地图右下角会带有Esri的logo,如下图所示: 本来这个事一件小事情,但是在国内需要把这个logo隐藏掉的需求还是不少,不管是Esri的用户还是合作伙伴,本着合作共赢的理念,再细微的需要能做咱就咱,研究了一会后,将解决方法记录如下。解决方法直接修改构建器的config.js文件这种情况下,修改完了原创 2017-10-18 11:01:34 · 612 阅读 · 0 评论 -
ArcSDE10.5.1在Oracle中使用表分区
背景在SDE地理空间库中存储地理数据是GIS应用在数据管理方面经常使用的方式,但是当某一个图层的数据量比较大的时候,往往会发现,图层的浏览和查询会变慢。可优化的方式很多,这里就讲一种比较实用的方式,表分区。下面以Oracle为例,其他的数据库类似。Oracle提供了分区技术以支持VLDB(Very Large Data Base),分区表通过对分区列的判断,把记录分别存放在不同的表空间中,...原创 2017-10-18 17:43:10 · 638 阅读 · 0 评论 -
ArcMap中操作无人机影像镶嵌
1、右键点击文件数据库,选中创建镶嵌数据集: 2、输入镶嵌数据集的名称,同时选中坐标系WGS_1984_Web_Mercator_Auxiliary_Sphere,如图: 在坐标系弹出框中搜索3857: 点击【确定】按钮之后,即可创建镶嵌数据集。下面将把无人机的影像数据添加到镶嵌数据集中,如下图: 3、选中栅格类型为Raster Dataset,输入数据类型为Dat原创 2017-04-06 15:43:02 · 7686 阅读 · 3 评论 -
将切片地图服务导出成移动端TPK包的操作说明
1、配置ArcMap的选项,启用ArcGIS Runtime功能如下图: 在弹出框中点击【共享】选项卡,勾选【启用ArcGIS Runtime工具】,如下图: 2、右键选中要导出的地图缓存服务,如下图: 3、选中TPK缓存包的存放路径,缓存类型选择TILE_PACKGE,同时勾选要导出的哪些级别下的缓存,如下图: 注意:如果桌面和GISServer不在同一台服务器上原创 2017-04-06 15:48:15 · 1515 阅读 · 0 评论 -
专题图输出JPG文件操作说明
打开ArcMap,并加载要制作专题图的地图数据: 将地图视图转换为Layout View,即布局视图: 操作按钮在右下角。打开页面打印设置,在菜单栏打开文件à页面打印设置,如下图: 取消【地图页面尺寸】的勾选图,并设置要打印的图幅长度和宽度: 此时,布局视图内的数据框将缩小,如下图: 将数据框拉满布局视图框的范围即可:原创 2017-04-06 15:50:26 · 876 阅读 · 0 评论 -
计算点到道路的距离_在ArcMap中完成
需求 现在有一批道路和一批点,如下图: 需要计算每个点到最近的道路的直线距离。解决方法要解决上述需要,可以直接在ArcMap中完成。只需要完成以下三个步骤:使用【生成临近表】工具,生成每条道路和每个点的距离;使用【汇总统计数据】工具,筛选出每个点到每条道路的一组距离中最小的距离;使用【连接】工具,将点和筛选出的结果进行连接。具体操作如下: 生成的结原创 2017-04-06 15:55:11 · 22632 阅读 · 5 评论 -
临近小区分析-利用ArcGIS构建分析模型
背景 最近碰到一个有意思的GIS功能需求:有一份小区的面图层,在地图上点一下,找出距离最近的小区面。 为什么说是有意思呢?如果大家仔细回想下,就会发现,很多时候,我们通过点击地图上的一个目标跟地图进行交互,目的是要看一下我们所点的这个目标的信息。譬如我们在地图上点一个餐馆的图标,想看看它是做什么菜系的,评论好不好,等等。这个点击动作其实是很明确的,就是奔着看餐馆的信息去。而原创 2017-10-19 11:28:41 · 3237 阅读 · 0 评论 -
配置DataStore10.5类型为【缓存切片】时报错
环境操作系统:Win2012 R2ArcGIS Server版本:ArcGIS Server10.5浏览器版本:IE11问题在将DataStore10.5配置到ArcGIS Server的时候,类型选择为【缓存切片】,提示如下图所示的错误信息: 这个错误是选择配置 查看了下Server的日志: 日志位置:\logs\\server。日志记录的信息原创 2017-04-06 11:42:21 · 1244 阅读 · 0 评论 -
在创建ArcGIS Server10.5的站点时,系统提示创建‘System/publishingToolsEX.GPServer’失败
环境操作系统:Win2008 R2 SP1ArcGIS Server版本:ArcGIS Server10.5浏览器版本:IE8,Chrome问题在创建ArcGIS Server10.5的站点时,系统提示创建'System/publishingToolsEX.GPServer'失败,如下图所示: 查看了下Server的日志: 日志位置:\usr\logs\\ser原创 2017-04-06 15:20:16 · 5831 阅读 · 6 评论 -
ArcGIS Server10.1系统服务无法启动,报JSONObject异常
服务器断电后再次开机,ArcGIS for Server系统服务无法启动。手动启动服务后,服务状态随即自动变为Stop状态。检查日志文件: service.log日志文件中的错误信息如下: 根据日志文件记录,是在启动log service的时候报的错误。初步判断是读取日志文件的配置信息时报的错,所以检查%ArcGIS Server Home%\framework\etc目录下的ar原创 2017-04-06 15:41:51 · 1389 阅读 · 0 评论 -
Web Adaptor重装配置时提示已经配置成功的问题
环境ArcGIS 10.1/10.2/10.3Windwos 8.1Tomcat 7.0.5问题描述 较早之前在本机上安装配置过一个10.2.1版本的ArcGIS产品,包括桌面、Server和Web Adaptor,并且也已经将Web Adaptor注册到了Server中。由于要试用新版本10.3,所以全部卸载了,安装了新的10.3产品。 但是在安装好Web原创 2017-04-06 15:51:06 · 1623 阅读 · 0 评论 -
SDE10.1 无法连接的问题解决
环境 数据库/操作系统:Oracle 10.0.2.4/AIX6.1 ArcGIS/操作系统:10.1/Windows 2008 R2问题 用户数据库服务器断电,导致整个数据库挂掉。数据库管理员采用了全库备份的方式对数据进行了备份,并重新创建的数据库实例,同时将原有的数据全库导入到新的实例中。在这个过程中,SDE空间库也是采用了全库备份及恢复的方式。 待原创 2017-04-06 15:51:34 · 1770 阅读 · 0 评论 -
Windows Server 2008 R2 Oracle 11.0.2.1配置ST_Geometry -终极版
环境SDE版本:10./10.2/10.2.1/10.2.2/10.3/10.4/10.5Oracle版本:11g R2 11.2.0.1Windows版本:Windows Server 2008 R2配置过程将st_shapelib.dll文件拷贝到oracle安装目录的BIN目录下,确保oracle账号对st_shapelib.dll文件具有读写权限;配置listene原创 2017-04-20 11:07:57 · 787 阅读 · 0 评论 -
AIX6.1 Oracle 11.0.2.4配置ST_Geometry
环境SDE版本:10./10.2/10.2.1/10.2.2/10.3/10.4/10.5Oracle版本:11g R2 11.2.0.4操作系统:AIX 6.1配置过程用将libst_shapelib.so文件上传到oracle安装目录的lib目录下,如果是用root账户上传的,可以通过以下命令修改libst_shapelib.so文件的拥有者及用户组为oracle用户和or原创 2017-04-20 11:31:46 · 579 阅读 · 0 评论 -
关于在AIX6.1操作系统下更新SDE10.0许可问题
环境操作系统:AIX6.1数据库:DB2 9.7SDE:10.0背景采用sdemon –o start命令启动sde时提示:许可过期,无法更新许可.再使用如下命令更新许可时:sdesetup -o update_key -d DB2 -l /path/license.ecp -u sde -p sde提示:Error: Bad Login User根据提示信息原创 2017-04-21 08:37:17 · 535 阅读 · 0 评论 -
ArcGIS Desktop连接SDE空间数据库和ArcGIS Server注册SDE空间数据库
环境 ArcGIS版本:10.1,10.2,10.3,10.4,10.5数据库:oracle11g 11.2.0.4,11.2.0.1背景从10.1开始ArcGIS的SDE就推荐用户采用直连的方式。在ArcGIS10及早期的版本中,很多用户都是采用服务的连接方式,也就是需要安装ArcSDE软件。但现在不建议这么做,主要是因为SDE服务在遇到数据量较大的时候就经常出现不稳定的现原创 2017-04-21 09:05:46 · 12025 阅读 · 0 评论 -
通过SQL语句更新SDE 许可的方法
概述 一般来说SDE的试用许可我会建议用户在没有到期之前进行续期,也就是更新许可。否则的话,如果SDE试用许可到期了,除了PostgresSQL数据库之外,我们只能通过SQL语句的方式来进行更新。在到期之前我们可以通过【更新企业级地理数据库许可】工具进行操作: 过期了,只能通过SQL进行许可的更新操作。这是由于SDE的许可信息是存储在SDE空间库里的server_conf原创 2017-04-21 09:31:17 · 1676 阅读 · 0 评论 -
ArcSDE 10.2服务安装
环境操作系统:Windows 2008 R2ArcSDE:10.2Oracle:11.2.0.1部署说明Oracle和ArcSDE分别在两个节点上部署,也就是分布式部署。安装步骤安装ArcSDE软件。默认下一步就可以。配置Oracle 64位客户端。sde是64位的软件,所以需要64位的驱动程序。具体可以参考:http://blog.csdn.net/pecke原创 2017-08-02 10:59:14 · 4194 阅读 · 1 评论 -
通过SQL删除SDE图层后,无法再新建相同图层名的问题
问题最近支持一个用户,在SDE中创建要素类(Polygon FeatureClass)的时候提示了下面这个问题: 根据提示是要素类已经存在,不能再创建相同的要素类。查看了下SDE,没有相同名称的要素类。后来据反馈,之前是通过SQL语句在Oracle中直接删除了该要素类。解决方法 初步判断是由于没有删除干净导致,背后的原因是SDE给每一个要素类都注册了一个唯一ID(REGI原创 2017-08-02 10:59:45 · 1403 阅读 · 0 评论