作者:kk
前言
本篇博客介绍的是如何在SuperMap iClient 3D for WebGL调用spatialanalyst空间分析服务对线数据进行放样
一、首先需要在iServer发布空间分析服务
操作截图
iServer发布空间分析服务
二、请求参数
代码如下:
var line = [{'x':116.44564437859106,'y':39.90302628980606,'z':15},{'x':116.44897779551044,'y':39.91745799561381,'z':30},{'x':116.4658603735841,'y':39.914008304232816,'z':0}]
var geometrySkylineSectorBodyParameter = {
"geometry":{"type":"LINE3D", "parts":[1], "points":line},
"distance":100,
"lonlat":true,
"resultType":"BODY",
"joinType":"ROUND"
};
var queryData = JSON.stringify(geometrySkylineSectorBodyParameter);
空间分析其他参数设置详情见iServer帮助文档:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/mergedProjects/SuperMapiServerRESTAPI/root/spatialanalyst/spatialanalyst.htm
三、发起请求
//空间分析服务地址
var url = "http://www.supermapol.com/realspace/services/spatialAnalysis-data_all/restjsr/spatialanalyst/geometry/3d/buffer.json";
$.ajax({
url: url,
async: true,
data: queryData,
method: "POST"
}).done(function (data) {
$.ajax({
url: data.newResourceLocation + ".json",
method: "GET"
}).done(function (data) {
if (data.geometry === null) {
console.log(data,'sssssssss')
return;
}
console.log("空间分析完成");
})
});
此处使用的是官网在线的空间分析服务地址
四、构建体数据
//添加体
//将model转换为8 位无符号整数值的类型化数组
var u8 = new Uint8Array(data.geometry.model);
var ab = u8.buffer;
//S3M实例化模型集合构建体
s3mInstanceColc.add("resultSkyline", {
position: Cesium.Cartesian3.fromDegrees(data.geometry.position.x, data.geometry.position.y, 500),
hpr: new Cesium.HeadingPitchRoll(0, 0, 0),
color: new Cesium.Color(0, 160 / 255, 233 / 255, 0.5)
}, ab,false);