网络分析服务初始化
{
"loadParams":
{
"fieldNameOfRoadName":"RoadName", //道路名称字段
"modeToGetSpeed":"LevelField",//道路等级或速度,LevelField、SpeedField、DefaultSpeed
"fieldNameOfRoadLevel":"RoadLevel", //道路等级字段名
"fieldNameOfRoadSpeed":"RoadSpeed", //道路速度字段名
"defaultSpeed": 40, //默认速度值
"levelToSpeedTable":[{"高速公路":120},{"省道":80},{"国道":100},{"县道":60}],//道路等级速度数组
"pointLimit":0.01, // 拓扑容限, 有线构链(LineBreakLine) 的时候有效
"charsetWithLoad":"Unicode", //字段编码, 主要是防止有些shape数据没有cpg文件,然后乱码的时候使用
"topoModeOfRoadLine":"NoBreak", //构建数据时的打断模式,分为:NoBreak(不进行任何打断,直接使用线的端点作为拐点,相当于直接加载链)、PtBreakLine(点对象打断线对象)、LineBreakLine(线对象互相打断)、AllTopo(全拓扑方式处理数据, 点打断线,线打断线)
"createdDataName":"createdDataName", //结果名称
"serviceDestCRS":"epsg:4490", // 空间参考, 对于调用者传给底层级底层传给调用者的数据空间参考
"reservedField": "name1,name2,name3", // 线构链的时候保留的字段
// 2023-11-28新增内容, 下面俩项只有在 LineBreakLine 的时候生效
"ztoleranceForBreak": 0.5, // 数据有Z值的时候,如果俩个线相交处的z值差大于此值,不会进行打断(topo时有效)
"fieldNameOfMerge": "name", // 对于有些线比较零碎,相邻的线如果"此字段"对应的值相等的话,可以进行线合并
"enableLineMerge": false, // 是否启用根据字段值合并细碎的线段,true及fieldNameOfMerge不为空才会生效
"threadNum" : 4 // 底层构链时候的最大并行线程数(topo时有效)
},
"loadData":
{
/* 对于数据的加载支持3种方式: */
/* 1. 加载shape数据进行分析 */
"roadLineData":
{
"connectType": "Folder",
"folderpath": "D:/KQGIS/湖北shp",
"dataset_name": "道路数据.shp" //本地shape文件
},
"breakPtData":
{
"connectType": "Folder",
"folderpath": "D:/KQGIS/湖北shp",
"dataset_name":"打断点数据.shp" // 本地shape文件
},
/** 2. 加载数据库中的数据表 */
"roadLineData":
{
"connectType": "数据库的类型", // KqAccess,KQSpatialDB,RelationalDB_Access,RelationalDB_MySql等
"filepath": "文件型数据库的路径",
"server": "数据库服务器地址(IP或机器名)",
"instance":"数据库实例名或端口",
"database": "数据库名称",
"username": "数据源用户名",
"password":"数据库密码",
"dataset_name": "要打开的要素表的名称"
},
"breakPtData": // 用于打断线的点数据,必须要是点,可有可无
{
"connectType": "数据库的类型",
"filepath": "文件型数据库的路径",
"server": "数据库服务器地址(IP或机器名)",
"instance":"数据库实例名或端口",
"database": "数据库名称",
"user": "数据源用户名",
"password":"数据库密码(base64编码)",
"dataset_name": "要打开的要素表的名称"
},
/* 3. 网络数据集(试验:), 此项配置与roadLineData(breakPtData)配置是冲突的,优先级低于上面的,有上面的则忽略此配置 */
"netDataset":
{
"connectType": "数据库的类型",
"server": "数据库服务器地址(IP或机器名)",
"instance":"数据库实例名或端口",
"database": "数据库名称",
"user": "数据源用户名",
"password":"数据库密码(base64编码)",
"DATASET_TYPE": 6 // 6代表网络分析数据集
},
// 如果有栅格数据的话,配置方式如下:
"demRasterData":
{
// 支持打开多个栅格数据
"栅格数据1": { // 这里的名称唯一
"CONNECTTYPE": "Folder",
"DATASET_NAME": "J50E001006_高程_Level_18.tif",
"folderpath": "F:/TestData/networkanalyst/测试dem网络分析"
},
"栅格数据2": {
"CONNECTTYPE": "Folder",
"DATASET_NAME": "tianditu.img",
"folderpath": "F:/TestData/networkanalyst/测试dem网络分析"
}
}
}
}
{
"loadData": {
"roadLineData": {
"folderpath": "E:/Work/资料文件/网络分析服务/0.testdata/数据二",
"connecttype": "Folder",
"dataset_name":"JCDL_DL.shp"
}
},
"loadParams": {
"charsetWithLoad": "GBK",
"createdDataName": "NetworkAnalyst",
"defaultSpeed": 40,
"fieldNameOfRoadName": "NAME",
"loadDestCRS": "EPSG:2360",
"modeToGetSpeed": "DefaultSpeed",
"pointLimit": 0.01,
"topoModeOfRoadLine": "NoBreak",
// 2023-11-28新增内容, 下面俩项只有在 LineBreakLine 的时候生效
"ztoleranceForBreak": 0.5, // 数据有Z值的时候,如果俩个线相交处的z值差大于此值,不会进行打断
"fieldNameOfMerge": "name" // 对于有些线比较零碎,相邻的线如果"此字段"对应的值相等的话,可以进行线合并
}
}
{
"loadData": {
"roadLineData": {
"folderpath": "E:/Work/资料文件/网络分析服务/0.testdata/数据一",
"connecttype": "Folder",
"dataset_name":"HL.shp"
}
},
"loadParams": {
"charsetWithLoad": "GBK",
"createdDataName": "NetworkAnalyst",
"defaultSpeed": 40,
"fieldNameOfRoadName": "",
"loadDestCRS": "PROJCS[\"unnamed\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Mercator_2SP\"],PARAMETER[\"standard_parallel_1\",0],PARAMETER[\"central_meridian\",0],PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1]]",
"modeToGetSpeed": "DefaultSpeed",
"pointLimit": 0.01,
"topoModeOfRoadLine": "NoBreak",
// 2023-11-28新增内容, 下面俩项只有在 LineBreakLine 的时候生效
"ztoleranceForBreak": 0.5, // 数据有Z值的时候,如果俩个线相交处的z值差大于此值,不会进行打断
"fieldNameOfMerge": "name" // 对于有些线比较零碎,相邻的线如果"此字段"对应的值相等的话,可以进行线合并
}
}
{
"loadData": {
"demRasterData": {
"DEPTHSA": { // 海上航行的深面栅格, 主要的路径查找栅格
"CONNECTTYPE": "Folder",
"DATASET_NAME": "DEPTHSA.img",
"folderpath": "F:/测试数据/海图路径分析/等深面"
},
"DANGERSP": { // 障碍面栅格, 辅助栅格
"CONNECTTYPE": "Folder",
"DATASET_NAME": "DANGERSP.img",
"folderpath": "F:/测试数据/海图路径分析/碍航物"
}
},
"roadLineData": {
"CONNECTTYPE": "Folder",
"DATASET_NAME": "道路ChainUTF8.shp",
"folderpath": "F:/TestData/networkanalyst/测试dem网络分析/基于dem的网络分析"
}
},
"loadParams": {
"charsetWithLoad": "UTF-8",
"createdDataName": "网络分析层",
"defaultSpeed": 40,
"fieldNameOfRoadName": "名称",
"fieldNameOfRoadSpeed": "速度",
"loadDestCRS": "EPSG:2360",
"modeToGetSpeed": "SpeedField",
"pointLimit": 0.01,
"topoModeOfRoadLine": "NoBreak",
// 2023-11-28新增内容, 下面俩项只有在 LineBreakLine 的时候生效
"ztoleranceForBreak": 0.5, // 数据有Z值的时候,如果俩个线相交处的z值差大于此值,不会进行打断
"fieldNameOfMerge": "name" // 对于有些线比较零碎,相邻的线如果"此字段"对应的值相等的话,可以进行线合并
}
}
{
"loadData": {
"netDataset": {
"CONNECTTYPE": "KQSpatialDB",
"DATASET_NAME": "NETDATASET2405111504",
"DATASET_TYPE": 6,
"FILEPATH": "F:/测试数据/bug测试/网络分析相关/测试网络数据集/TestNetDataset0407.kqdb"
}
},
"loadParams": {
"createdDataName": "网络分析层",
"serviceDestCRS": "EPSG:4326"
}
}
名称 | 必填 | 类型 | 说明 |
---|---|---|---|
loadParams | 否 | json对象 | 加载网络分析数据时的参数,详看loadParams参数说明 |
loadData | 是 | json对象 | 用于加载的数据的相关内容,详看loadData的参数说明 |
名称 | 必填 | 类型 | 说明 |
---|---|---|---|
roadLineData | 是 | json | 道路线数据, 参考roadLineData及breakPtData定义 |
breakPtData | 否 | string | 用于打断线的点数据 |
demRasterData | 否 | string | 用于最优路径的栅格数据 |
名称 | 必填 | 类型 | 说明 |
---|---|---|---|
connectType | 是 | string | 数据源类型,支持Folder,KQSpatialDB等类型 |
filepath | 条件 | string | 文件路径,数据源为文件时有效,数据源类型为Folder、KqAccess、KQSpatialDB等为文件型数据源时存在。 |
server | 条件 | string | 数据库服务器地址(IP或机器名) |
instance | 条件 | string | 数据库实例名或端口 |
database | 条件 | string | 数据库名称 |
username | 条件 | string | 数据源用户名 |
password | 条件 | string | 数据库密码(base64编码) |
tablename | 条件 | string | 要素表名 |
"roadLineData":{
"connectType": "Folder"
"folderpath": "D:/KQGIS/湖北shp",
"dataset_name": "道路数据.shp"
}
"roadLineData": { // 8.5的连接信息
"connectType": "KQSpatialDB"
"filepath": "F:/TestData/04data/kqcs.kqdb",
"dataset_name":"ONEROAD",
}
"roadLineData": { // 8.5的连接信息
"connectType": "RelationalDB_Kingbase8",
"server": "192.168.210.126",
"database":"cs1116",
"instance":"54321",
"password": "******",
"user":"cs"
"dataset_name":"XZDW",
}
名称 | 必填 | 类型 | 说明 |
---|---|---|---|
fieldNameOfRoadName | 是 | string | 道路名称所属字段名 |
modeToGetSpeed | 否 | string | 参考需要使用时间作为代价时,需要设置相关内容,主要有下面的模式: 1. LevelField 需要设置道路等级字段名称,并且需要设置道路等级与速度对应表 2. SpeedField 需要设置道路速度字段名称,通过属性值可以直接获取速度 3. DefaultSpeed 只是使用底层分析的默认速度,默认为40 如果没有设置此项,默认是 DefaultSpeed,所有道路采用同样的速度 |
fieldNameOfRoadLevel | 否 | 数据集连接对象 | 道路等级所属字段名,当获取速度的模式设置为 LevelField 时,需要设置此字段名参数 |
fieldNameOfRoadSpeed | 否 | 数据集连接对象 | 道路速度所属字段名,当获取速度的模式设置为 SpeedField 时,需要设置此字段名参数 |
defaultSpeed | 否 | int | 默认速度(单位km/h),默认速度为40 ,当获取速度的模式设置为 DefaultSpeed 时,根据需要设置 |
levelToSpeedTable | 否 | json 对象数组 | 道路等级值与速度值(km/h)对应表, 如下: [{"高速公路":120},{"省道":80},{"国道":100},{"县道":60}] |
pointLimit | 否 | double | 容限值, 单位为米(默认0.01m=1cm) |
charsetWithLoad | 否 | string | shape文件中属性值的编码值(GBK或UTF-8等): 1.一般对于shape来说优先使用cpg文件,对于数据库文件使用自身的编码 2. 如果shape文件没有cpg文件的话就会使用此指定的编码 |
topoModeOfRoadLine | 否 | string | 线数据进行拓扑的几个模式: 1. NoBreak (不进行任何打断,直接使用线的端点作为拐点,相当于直接加载链) 2. PtBreakLine(点数据打断线对象,有breakPtData时生效) 3. LineBreakLine(线对象互相打断,需要对线数据进行处理,会导致加载速度比较慢) 4. AllTopo=PtBreakLine+LineBreakLine(全拓扑方式处理数据, 点打断线,线打断线) 如果不指定,则模式是 NoBreak,相当于加载链 |
createdDataName | 否 | string | 创建的数据的名称信息,后面创建的网络分析图层也会以此作为图层名 主要是为了桌面客户端图层显示用,服务可以不予关心 |
serviceDestCRS | 否 | string | 目标空间参考, 设置后产生的影响: 1.上层调用分析时传的点的坐标需要是此空间参考下的 2.产生的输出的坐标是此空间参考下的 3.如果为空则需要保证输入的坐标的空间参考与分析的数据的空间参考一致,不然可能分析会有问题 |
- | 2023-11-28新增内容, 下面俩项只有在 LineBreakLine 的时候生效 | ||
ztoleranceForBreak | 否 | double | 数据有Z值的时候,如果俩个线相交处的z值差大于此值,不会进行打断 |
fieldNameOfMerge | 否 | string | 对于有些线比较零碎,相邻的线如果"此字段"对应的值相等的话,可以进行线合并 |