tar -zxvf supermap-iserverr-***-linux.tar.gz
手动安装依赖库
# 1. 检查缺少的依赖
cd supermap-iserverr-***-linux/support/objectsjava
tar -zxvf bin.tar.gz
mv Bin bin
cd bin
export LD_LIBRARY_PATH=.
ldd libWrapjc* | grep not
# 然后根据提示缺少的rpm,手动安装依赖
自动一键安装脚本
cd supermap-iserverr-***-linux/support
./dependencies_check_and_install.sh install -y
许可驱动安装
cd supermap-iserverr-***-linux/suppor/Supermap_License/Support
tar -xvf *.tar
cd aksusbd-*
chmod +x dinst
./dinst
许可检查
# iserver根目录下执行
./licensetools.sh -s
cd supermap-iserverr-***-linux/bin
./startup.sh
# 检查日志
tail -f ../logs/catalina.out
这个流程比较简单,相对正常在tomcat环境下的war包部署,多了SuperMap 组件配置、和依赖许可配置
systemctl status firewalld # 查看防火墙
firewall-cmd --list-all # 查看防火墙规则
firewall-cmd --permanent --add-port=8090/tcp # 开放端口8090
firewall-cmd --reload # 重启防火墙
netstat tulnp # 查看当前机器占用(需要安装net-tools)
本节主要讲了如何管理iserver服务,这里比较基础的没有记录,只记录一些新增特性和未使用过的功能
可以对服务的配置信息进行修改。
方法一: 删除服务管理中的服务,然后删除对应的服务组件、服务提供者(确保删除的服务组件和服务提供者没有被其他服务实例使用)
方法二: 利用工作空间选项卡,删除某个工作空间的所有GIS服务(该方法直接删除所有服务提供者、服务组件)
SuperMap iServer服务器定时资源回收,iserver GIS 服务器自动重启的一个过程,防止资源释放不干净。
服务可以事先发布好,不去启用,只有需要用到的时候才会启用,发布的信息会保留着
REST(Respresentational State Transfer 表述性状态转移)
本节内容比较简单,查阅帮助文档查看具体的api接口文档。根据接口构建请求参数,发送GET / POST / PUT / DELETE请求。
略…
略…
略…
2.WebGIS组件库
查阅文档即可,略…
略…
1. 常用坐标系
1. 坐标转换方法
// 地理坐标系转投影坐标系
Point = L.Proj.CRS.project(<Latlng> latlng);
// 投影坐标系转地理坐标系
LatLng = L.proj.CRS.unproject(<Point> point);
result = L.supermap.Util.transform(feature, sourceCRS, targetCRS);
**2. 需要进行坐标转换的情况 **
1.GIS功能分类
1. 常见问题
var param = new L.supermap.QueryBySQLParameters({
queryParams: [{
name: "",
attributeFilter: ""
},{
name: "",
attributeFilter: ""
}]
})
1. 空间分析概述
空间分析是基于地理对象位置和形态空间数据的分析技术,其目的在于提取和传输空间信息。强大的空间分析能力是GIS的主要特征。
2. 矢量分析——缓冲区分析
缓冲区分析(buffer)是IGS的基本空间操作功能之一,是指根据指定的距离,在点、线、面几何对象周围自动建立一定宽度的区域的分析方法。
3. 矢量分析——叠加分析
叠加分析是在统一空间参考系统下,通过对两个数据集进行的一系列集合运算,生成新数据集,提取用户需要的新的空间几何信息。同时,通过叠加分析,还可以对数据的各种属性信息进行处理。
- 叠加分析的两个数据必须有相同的投影信息
- 源数据可以是点、线、面,但叠加数据只能是面。
4. 矢量分析——临近分析(泰森多边形)
泰森多边形是基于点、线、面对象根据指定的距离,在点、线、面集合对象周围建立一定宽度的区域的分析方法
5. 矢量分析——动态分段
动态分段技术是在地图上动态显示线性参考要素的过程,是线性参考技术的应用。它在不改变要素原有空间数据结构的条件下,建立线性要素上任意路段与多重属性信息之间关联关系。
应用: 广泛应用于公路、铁路、河流等线性特征的数据采集、公共交通系统管理、路面质量管理一级通讯和分配网络(如电网、电话线路、电视电缆、给排水管)模拟等领域
** 6. 栅格分析——表面分析**
7. 栅格分析——插值分析
插值分析利用已知的样点去预测或者估计未知样点的数值,包括内插和外推两种插值方式。内插是通过一直点的数据推求统一区域未知点的数据。外推是通过已知区域,推求其他区域的数据。
8. 栅格分析——密度分析
应用: 计算人口密度、建筑密度、获取犯罪情况报告、旅游区人口密度检测、连锁店经营情况分析。
1. 空间分析服务发布
iserver中快速发布——工作空间——选择空间分析服务
详细操作过程略
2. 各类空间分析功能API
服务类: SpatialAnalystService
实现功能:
网络分析是在网络模型的基础上通过分析解决实际问题的过程
1. 基本概念
2. 主要接口
NetworkAnalystService
发布时选择 网络分析服务,网络分析服务配置可以自动读取到,也可以手动选择。
可以在服务提供者进行进一步配置。在高级设置中设置交通规则、转向表数据集、障碍等。
注意: TransportationAnalystParameter障碍弧段和障碍点的设置优先于iServer交通网络分析服务提供者的相应参数值。
需求:基于Chengdu数据源中的网络模型数据network模拟生鲜物流配送,在地图上任意添加目标点,查询目标迪安周边三公里范围内最近的生鲜零售门店,并在地图上高亮显示从门店到目标点的配送路线。
功能逻辑: 发布网络分析服务-》 查询获取设施集合 -》 设置待分析事件集合 -》 进行最近设施分析。
地址匹配流程:导入地址词典(属性 转词典) -》 生成地址索引 -》 发布地址索引 -》 前端调用地址匹配服务进行做正向匹配和反向匹配
iDesktpX支持对地址词典的管理: 导入、导出、更新等
- 支持创建地址ICi点库,可通过逐个添加词汇或导入文本文件进行创建
- 支持对已有词典进行添加或删除等编辑操作
- 支持导出地址词典库,或导出为文本文件
1. 地址索引文件结构
1. 数据聚合展示
基于Leaflet.markerCluster展示数据
实现思路: 引入聚合图插件 -》 创建聚合图层,添加到地图中 -》 向聚合图层添加数据
基于L.supermap.MapvLayer展示数据
实现思路: 引入MapV -》 构建蜂巢数据数组 -》 设置蜂巢风格 -》 创建蜂巢图层,并添加到地图中
2. 热力图展示
基于 Leaflet.heatLayer制作热力图
实现思路: 引入热力图插件 -》 构建heatPoint数组 -》 创建热力图层添加到地图中
基于L.sueprmap.HeatMapLayer制作热力图
实现思路: 实例化HeatMapLayer -》 定义客户端要素专题图 -》 将热力图添加到地图中
基于Echarts + L.supermap.EchartsLayer制作热力图
需求: 基于csv格式的地震数据,以热力图形式展示2008 - 2017年的地震情况
1. 海量标记展示性能问题
采用marker 标记海量点数据浏览器卡死
2. 高效点图层开发方法实现思路
设置渲染器类型 -》 定义要素类的样式 -》 构建 Graphic要素类 -》 创建高效图层,并添加到地图中 -》 设置图层交互事件
1. 专题图类型
2.客户端专题图
生成原理
开发思路: 创建客户端专题图图层 -》 获取/创建矢量要素 -》 设置 专题图显示风格 -》 加载要素到专题图层 -》 设置专题要素交互
主要接口:
3. 服务端专题图
主要接口: ThemeService专题图服务类 -》 ThemeParameter 专题图参数类
生成原理:
1. 数据可视化实现方式
Elasticsearch数据分析
参数: _index 索引;_type 类型; _source 对象属性;
实现步骤: 启动elasticsearch数据库 -》 es跨域配置 -》 根据iclient API 编写查询代码 -》 将查询结果根据需求渲染在地图上
Elasticsearch配置跨域
# 修改 elasticsearch.yml 文件,添加如下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
# 配置网络连接端口
network.host : IP
修改完成之后重启es数据库
推荐 ts(javascript)、vite、vue-router、axios、pinia 、 +element-plus
使用 Javascript Api 实现自定义功能
需求: 根据属性信息查找并定位队形
功能需求:
实现步骤: 1. 实现地图加载; 2. 制作查询面板 ; 3. 添加查询组件; 4. 实现对地图进行SQL查询
2. 优化策略
1.提升数据生产效率
性能检查工具: 地图 -》 制图 -》 性能诊断
数据重复
数据复杂
2.缓存技术提交效率
3. 数据优化方法
缓存技术是一种非常有效的提高服务访问效率的方式,用空间来换取事件的存储方式
2.HTTP缓存
3. 请求缓存
4. 地图缓存
注意:使用iserver开启多进程切图之后,要重启iserver才能生效
7. iServer分布式切图常见问题
1) 分布式切图时候推送数据成功,但是切图速度为0
在 桌面重新以只读方式打开数据源,保存工作空间,重启iServer重新创建切图任务
2) 使用分布式切图服务时有的子节点不切图
检查子节点的地图数据,如果使用的是文件型数据源,需要保证子节点的地图数据与父节点的数据具有相同的路径。一般出现这种情况时加入了其他服务器的iServer,这个服务器时没有切图数据的,需要copy过来,正常情况主节点会自动部署。
8. MVT矢量瓦片
矢量瓦片(*.mvt),包含要素的几何形状与属性信息
样式文件(style.json), 要素的风格样式
9. 矢量瓦片典型应用
1) 预切图(多进程),适用于静态数据(非频繁更新)
2) 动态生成(iServer) , 适用于动态数据(频繁更新)
3) 实时切图(HBase), 适用于大数据
1. 客户端开发提升效率策略
1) 呈现地图使用缓存
场景: 专题图变化、空间数据变化、图层控制、在线编辑
策略: 切换地图、自动化更新缓存、图层叠加
2) 合理设置返回信息
查询/分析结果分批传回:QueryBySQLParameters.expectCount、 startRecord
设置合理的查询结果类型: 设置查询结果分会类型,包括只返回属性、只返回几何实体以及返回属性和几何实体。
3) 海量数据的显示要充分利用客户端SDK优势进行呈现(减少服务端计算)
2. 几种常见的可视化渲染
1) 热力图
动态栅格图的一种,亮色代表事件发生频率较高或者事务分布密度较大,暗色反之,能够明显的表现地图中事件发生频率或者事物分布密度。
2)格网图
在格网区域内显示地理数据的统计信息,并根据格网内数据呈现不同的渲染效果
特点:数据分层优化; 直观的区域展示; 清晰的区域划分对比
应用: 地域对比性的信息分析,比如人口密度; 区域性的数据统计对比
3)聚散显示
聚散显示是指将一定范围内的点要素聚合显示至一个点
优化客户端数据呈现效果
3. 矢量图——矢量数据的快速交互
矢量图是将地理数据以瓦片的分块方式发给浏览器的一种方式;
矢量化瓦片和栅格瓦片相似;
适用于矢量数据快速交互的需求
4.高性能可视化库
1) SuperMap GraphicLayer 100万 +, 可交互,可传递属性
2) EchartsLayer 1000万+,增量渲染,但不支持交互与传递属性
镜像地址:https://hub.docker.com/r/supermap/iserver/tags
熟悉docker即可,过程略
常见的Web服务器: Tomcat、apache、jboss、resin、weblogic
过程略
iServer集群搭建
开启多实例
iServer服务管理 ——“集群” ——“单机多进程”,重启iserver,进程数根据cpu核数设置
应用: http转发为https;
负载均衡
功能介绍: 实时动态判断哪些目标落入围栏,支持计算进入、保持、退出等细化状态
输入数据类型: 点、地理围栏(面)
适用场景: 空管中心、运钞车、油罐车等目标实时监控和围栏边界
1) 具有物联网数据生产的行业
iServer Datastore -> elasticsearch
1) 传感器实时监测—— 城市空气检测
主要业务:
空气质量实时监控;
环境指标统计;
污染物分析。
2)动态目标监控—— 船舶监控(动态目标、历史分析)
主要业务:
GPS实时监控;
地理围栏预警
轨迹重建、大数据聚合
1) 数据来源——UDP协议
Receiver层自定义扩展:
用户可以基于com.supermap.bdt.streaming.jar的类型开发自定义i类型,添加到流数据实时处理的运行模型中,用于扩展功能,定制功能的目的。
2) 流数据分析处理扩展——信令数据与基站信息融合
手机信令数据传递回来的信息只有手机号,基站对应区域及编码,须关联基站信息(地理位置等)
1. Supermap iServer GIS服务的结构
服务接口: 基于某些标准或者基于某种通讯协议的服务接口
服务组件: 依赖注入方式调用服务提供者,不在程序中固定所调用的服务提供者; 封装成易于客户端应用的模块
服务提供者: GIS服务代理;将各种类型的GIS服务的GIS功能进行统一
3. 服务组件
对不同服务提供者提供的服务能力进行组合并封装成 已于客户端应用的模块
类型:
- 地图服务组件
- 数据服务组件
- 空间分析服务组件
- 交通网络分析服务组件
- 三位服务组件
- 三维网络分析
- 空间建模服务组件
- 动态标绘服务组件
- 地址匹配服务组件
- 用户自定义服务组件
4. 服务接口
将服务组件按照不同服务规范发布成不同类型的网络服务,该层决定了所有支持发布的服务类型
类型:
- rest
- rest/jsr(空间分析、交通换乘分析、三维网络分析)
- wms
- wmts
- wfs
- wcs
- wps
- handler(对接使用iserver java 2008 开发的应用程序)
- 用户自定义服务接口
5. 服务提供者与服务组件的对应关系
服务提供者:服务组件 = N : 1
**6.服务组件和服务接口的关系 **
1. SuperMap iServer 空间服务分类
分类两大类:
1) 通用空间服务(Generric Spatial Service , GSS),如地图服务、空间数据服务、空间分析服务、网络分析服务等,SuperMap iServer 默认提供了这类服务
2) 领域空间信息服务(Domain Spatial Service,DSS),用户根据行业特定的业务逻辑,自行构建出的与空间信息相关的服务。
2. SuperMap iServer 服务扩展
3. SuperMap iServer 扩展配置文件
服务组件配置信息 + 服务提供者配置信息: supermap-iserver-*/webapps/iserver/WEB-INF/iserver-services.xml
服务接配置信息: supermap-iserver-*/webapps/iserver/WEB-INF/iserver-services-interfaces.xml
4. 扩展开发流程
1) 分析需求,确定业务构建层次是 Interface、Componet还是Provider层
2) 实现DSS组件
3)服务提供者层的扩展
// 服务提供者层的实现形式
public class SampleProvider implements ProviderContextAware{
public void setProviderContext(ProviderContext context){
SampleProviderSetting sampleProviderSetting = context.getConfig(SampleProviderSetting.class);
//......
}
}
// 服务组件层的实现形式
@Component(providerTypes={MapProvider.class},optional=false,type="SampleType")
public class SampleComponent implements ComponentContextAware{
// ......
public void setComponentContext(ComponentContext context){
SampleComponentConfig config = context.getConfig(SampleComponentConfig.class);
List<MapProvider> mapproviders = context.getProviders(MapProvider.class);
}
}
// 服务接口层的实现形式
@Interface(componentTypes = { com.supermap.services.components.Map.class} , optional = false, multiple = false)
@Protocol(names = {"SampleInterface"})
public class SampleServlet extends HttpServlet implements InterfaceContextAware{
public void setInterfaceContext(InterfaceContext context){
//......
SampleInterfaceConfig sampleConfig = context.getConfig(SampleInterfaceConfig.class);
List components = context.getComponents(Map.class);
}
}
1. 需求: 实现一个新的组件,一个新的服务接口