当前位置: 首页 > news >正文

网站设计方案要怎么写经典模板网站建设

网站设计方案要怎么写,经典模板网站建设,网站域名续费多少钱,赌博网站到底怎么做在共享同一影像底图的服务场景中,如何基于用户权限体系实现差异化的数据可视范围控制?SuperMap iClient3D for WebGL提供了自定义区域影像裁剪的方法。让我们一起看看吧! 一、数据制作 对于上述视频中的地图制作,此处不做讲述&am…

在共享同一影像底图的服务场景中,如何基于用户权限体系实现差异化的数据可视范围控制?SuperMap iClient3D for WebGL提供了自定义区域影像裁剪的方法。让我们一起看看吧!

一、数据制作

对于上述视频中的地图制作,此处不做讲述,如有需要可访问:Online 开发者中心

可视化案例中提供了详细的代码、数据下载链接及数据制作过程。

二、实现思路

影像数据可视范围控制的实现思路如下图所示:

三、关键代码

遍历Geojson数据获取坐标数组关键代码如下:

if (data.type === "MultiPolygon") {// 处理 MultiPolygon 类型的数据,可能包含多个多边形for (let i = 0; i < data.coordinates.length; i++) {for (let j = 0; j < data.coordinates[i].length; j++) {// 获取当前多边形的坐标数组let positions = data.coordinates[i][j];// 用于存储转换后的笛卡尔坐标let superMapPositions = [];for (let k = 0; k < positions.length; k++) {// 将经纬度坐标转换为地理坐标对象,高度设为 0var cartographic = SuperMap3D.Cartographic.fromDegrees(positions[k][0], positions[k][1], 0);// 将地理坐标对象转换为笛卡尔坐标var cartesian = SuperMap3D.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height);superMapPositions.push(cartesian);}// 转换为经纬度和高度数组let finalPositions = [];for (let k = 0, len = superMapPositions.length; k < len; k++) {// 将笛卡尔坐标转换为地理坐标对象var cartographic = SuperMap3D.Cartographic.fromCartesian(superMapPositions[k]);// 将弧度制的经度转换为角度制var longitude = SuperMap3D.Math.toDegrees(cartographic.longitude);// 将弧度制的纬度转换为角度制var latitude = SuperMap3D.Math.toDegrees(cartographic.latitude);// 获取高度值var h = cartographic.height;// 将经纬度和高度值依次添加到数组中finalPositions.push(longitude);finalPositions.push(latitude);finalPositions.push(h);}// 将当前多边形的位置信息添加到 allPositions 数组中allPositions = allPositions.concat(finalPositions);}}
} else if (data.type === "Polygon") {// 处理 Polygon 类型的数据,只包含一个多边形let positions = data.coordinates[0];let superMapPositions = [];for (let i = 0; i < positions.length; i++) {var cartographic = SuperMap3D.Cartographic.fromDegrees(positions[i][0], positions[i][1], 0);var cartesian = SuperMap3D.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height);superMapPositions.push(cartesian);}// 转换为经纬度和高度数组let finalPositions = [];for (let i = 0, len = superMapPositions.length; i < len; i++) {var cartographic = SuperMap3D.Cartographic.fromCartesian(superMapPositions[i]);var longitude = SuperMap3D.Math.toDegrees(cartographic.longitude);var latitude = SuperMap3D.Math.toDegrees(cartographic.latitude);var h = cartographic.height;finalPositions.push(longitude);finalPositions.push(latitude);finalPositions.push(h);}// 将当前多边形的位置信息赋值给 allPositions 数组allPositions = finalPositions;
}

四、示例完整代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>自定义区域影像裁剪</title><link href="../../Build/SuperMap3D/Widgets/widgets.css" rel="stylesheet"><link href="./css/pretty.css" rel="stylesheet"><script src="./js/jquery.min.js"></script><script src="./js/spectrum.js"></script><script src="./js/config.js"></script><script src="./js/tooltip.js"></script><script type="text/javascript" src="../../Build/SuperMap3D/SuperMap3D.js"></script>
</head><body><div id="Container"></div><div id='loadingbar' class="spinner"><div class="spinner-container container1"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container2"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container3"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div></div><div id="toolbar" class="param-container tool-bar"><div class="param-item"><select id="citySelector" style="width: 150px"><option value="" selected disabled hidden>请选择所属区域</option><option value="guiyang_city">贵阳市</option><option value="anshun_city">安顺市</option><option value="bijie_city">毕节市</option><option value="liupanshui_city">六盘水市</option><option value="tongren_city">铜仁市</option><option value="zunyi_city">遵义市</option><option value="qiandongnan_prefecture">黔东南</option><option value="qiannan_prefecture">黔南</option><option value="qianxinan_prefecture">黔西南</option></select></div></div><script>// 定义各城市中心点经纬度信息const cityCenters = {"guiyang_city": [106.713478, 26.578341],"anshun_city": [105.934854, 26.224645],"bijie_city": [105.291238, 27.302327],"liupanshui_city": [104.831343, 26.590612],"tongren_city": [109.188523, 27.704321],"zunyi_city": [106.932211, 27.707422],"qiandongnan_prefecture": [107.983421, 26.587345],"qiannan_prefecture": [107.501234, 26.234567],"qianxinan_prefecture": [104.902345, 25.098765]};// 页面加载完成后执行的函数,初始化 SuperMap3D 地图function onload(SuperMap3D) {// 通过 config.js 中的 getEngineType 函数,获取引擎类型(EngineType),用于设置启动方式let EngineType = getEngineType();// 创建一个 SuperMap3D 的 Viewer 实例,将其显示在 id 为 'Container' 的容器中let viewer = new SuperMap3D.Viewer('Container', {contextOptions: {// 设置 WebGL 上下文类型,Webgl2 对应值为 2,WebGPU 对应值为 3contextType: Number(EngineType),}});// 当场景加载完成后,调用 init 函数进行初始化操作viewer.scenePromise.then(function (scene) {init(SuperMap3D, scene, viewer);});}// 初始化地图场景的函数function init(SuperMap3D, scene, viewer) {// 设置地图的分辨率比例,根据设备的像素比进行调整viewer.resolutionScale = window.devicePixelRatio;$('#loadingbar').remove();// 存储添加的影像图层let tmpLayer = viewer.imageryLayers.addImageryProvider(new SuperMap3D.SuperMapImageryProvider({url: "http://localhost:8090/iserver/services/map-GuiZhou/rest/maps/%E8%B4%B5%E5%B7%9E%E7%9C%81%E5%9C%B0%E5%BD%A2%E5%9B%BE",}));// 设置所加载的影像背景透明,将白色背景设为透明tmpLayer.transparentBackColor = SuperMap3D.Color.fromCssColorString('#ffffff');// 设置透明背景的容差,即与指定颜色相近的颜色也会被视为透明tmpLayer.transparentBackColorTolerance = Number(0.1);// 让地图飞到影像所在的位置,以便用户能看到影像viewer.flyTo(tmpLayer);// 监听城市选择框的 change 事件,当用户选择不同的城市时触发$('#citySelector').change(function () {// 获取用户选择的城市的值var selectedCity = $(this).val();if (selectedCity) {// 根据选择的城市加载对应的 JSON 边界数据文件$.getJSON('./data/json/' + selectedCity + '.json', function (data) {// 用于存储所有多边形的位置信息let allPositions = [];if (data.type === "MultiPolygon") {// 处理 MultiPolygon 类型的数据,可能包含多个多边形for (let i = 0; i < data.coordinates.length; i++) {for (let j = 0; j < data.coordinates[i].length; j++) {// 获取当前多边形的坐标数组let positions = data.coordinates[i][j];// 用于存储转换后的笛卡尔坐标let superMapPositions = [];for (let k = 0; k < positions.length; k++) {// 将经纬度坐标转换为地理坐标对象,高度设为 0var cartographic = SuperMap3D.Cartographic.fromDegrees(positions[k][0], positions[k][1], 0);// 将地理坐标对象转换为笛卡尔坐标var cartesian = SuperMap3D.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height);superMapPositions.push(cartesian);}// 转换为经纬度和高度数组let finalPositions = [];for (let k = 0, len = superMapPositions.length; k < len; k++) {// 将笛卡尔坐标转换为地理坐标对象var cartographic = SuperMap3D.Cartographic.fromCartesian(superMapPositions[k]);// 将弧度制的经度转换为角度制var longitude = SuperMap3D.Math.toDegrees(cartographic.longitude);// 将弧度制的纬度转换为角度制var latitude = SuperMap3D.Math.toDegrees(cartographic.latitude);// 获取高度值var h = cartographic.height;// 将经纬度和高度值依次添加到数组中finalPositions.push(longitude);finalPositions.push(latitude);finalPositions.push(h);}// 将当前多边形的位置信息添加到 allPositions 数组中allPositions = allPositions.concat(finalPositions);}}} else if (data.type === "Polygon") {// 处理 Polygon 类型的数据,只包含一个多边形let positions = data.coordinates[0];let superMapPositions = [];for (let i = 0; i < positions.length; i++) {var cartographic = SuperMap3D.Cartographic.fromDegrees(positions[i][0], positions[i][1], 0);var cartesian = SuperMap3D.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height);superMapPositions.push(cartesian);}// 转换为经纬度和高度数组let finalPositions = [];for (let i = 0, len = superMapPositions.length; i < len; i++) {var cartographic = SuperMap3D.Cartographic.fromCartesian(superMapPositions[i]);var longitude = SuperMap3D.Math.toDegrees(cartographic.longitude);var latitude = SuperMap3D.Math.toDegrees(cartographic.latitude);var h = cartographic.height;finalPositions.push(longitude);finalPositions.push(latitude);finalPositions.push(h);}// 将当前多边形的位置信息赋值给 allPositions 数组allPositions = finalPositions;}// 移除之前的裁剪区域,避免重叠viewer.scene.globe.removeImageryClipRegion("clip", [tmpLayer]);// 添加新的裁剪区域,根据选择的城市边界对影像进行裁剪viewer.scene.globe.addImageryClipRegions({position: allPositions,layers: [tmpLayer],name: "clip"});// 获取所选城市的中心点坐标const [lon, lat] = cityCenters[selectedCity];// 创建地理坐标对象const center = SuperMap3D.Cartographic.fromDegrees(lon, lat);// 创建笛卡尔坐标对象const centerCartesian = SuperMap3D.Cartesian3.fromRadians(center.longitude, center.latitude, 530000);// 让地图飞到城市中心点viewer.camera.flyTo({destination: centerCartesian,duration: 3 // 飞行时间,单位为秒});});}});}// 检查 SuperMap3D 是否已经定义,如果已经定义则调用 onload 函数进行初始化if (typeof SuperMap3D!== 'undefined') {onload(SuperMap3D);}</script>
</body></html>

文章转载自:
http://dinncosnug.bkqw.cn
http://dinncocatch.bkqw.cn
http://dinncojanissary.bkqw.cn
http://dinncophosphoroscope.bkqw.cn
http://dinncoburma.bkqw.cn
http://dinncooverprint.bkqw.cn
http://dinncodineutron.bkqw.cn
http://dinncolightsome.bkqw.cn
http://dinncoreestablish.bkqw.cn
http://dinncocorrugated.bkqw.cn
http://dinnconaturally.bkqw.cn
http://dinncoligature.bkqw.cn
http://dinncoradioprotective.bkqw.cn
http://dinncovita.bkqw.cn
http://dinncoratine.bkqw.cn
http://dinncoems.bkqw.cn
http://dinncofoldaway.bkqw.cn
http://dinnconyassa.bkqw.cn
http://dinncofordize.bkqw.cn
http://dinncomacrometeorology.bkqw.cn
http://dinncodemagnetise.bkqw.cn
http://dinncopisolite.bkqw.cn
http://dinncoinertness.bkqw.cn
http://dinncodulciana.bkqw.cn
http://dinncoslovene.bkqw.cn
http://dinncomalevolence.bkqw.cn
http://dinncokhfos.bkqw.cn
http://dinncochromatographic.bkqw.cn
http://dinncopacktrain.bkqw.cn
http://dinncocatchweed.bkqw.cn
http://dinncodesecration.bkqw.cn
http://dinncokinetosis.bkqw.cn
http://dinncojackladder.bkqw.cn
http://dinncoexaminatorial.bkqw.cn
http://dinncocrossbuttock.bkqw.cn
http://dinncoperfuse.bkqw.cn
http://dinncoplayday.bkqw.cn
http://dinncogregarization.bkqw.cn
http://dinncoextorsively.bkqw.cn
http://dinncodeportation.bkqw.cn
http://dinncohomopterous.bkqw.cn
http://dinncomunitionment.bkqw.cn
http://dinncorhinitis.bkqw.cn
http://dinncoepipelagic.bkqw.cn
http://dinncoracism.bkqw.cn
http://dinncotriplicate.bkqw.cn
http://dinncocharmingly.bkqw.cn
http://dinncomanatee.bkqw.cn
http://dinncoeuropanet.bkqw.cn
http://dinncophosphonium.bkqw.cn
http://dinncoaeromotor.bkqw.cn
http://dinncoreputably.bkqw.cn
http://dinncoecocatastrophe.bkqw.cn
http://dinncoincused.bkqw.cn
http://dinncologician.bkqw.cn
http://dinncolustring.bkqw.cn
http://dinncodeflorate.bkqw.cn
http://dinncograndiose.bkqw.cn
http://dinncopossessory.bkqw.cn
http://dinncobassi.bkqw.cn
http://dinncomilliliter.bkqw.cn
http://dinncopaterfamilias.bkqw.cn
http://dinncoarchaeologize.bkqw.cn
http://dinncoessayistic.bkqw.cn
http://dinncothirteenth.bkqw.cn
http://dinncolactescency.bkqw.cn
http://dinncoquass.bkqw.cn
http://dinncohabakkuk.bkqw.cn
http://dinncodysphemism.bkqw.cn
http://dinncolvov.bkqw.cn
http://dinncoradioscopy.bkqw.cn
http://dinncotup.bkqw.cn
http://dinncodinoflagellate.bkqw.cn
http://dinncoperiodontal.bkqw.cn
http://dinncogeocarpy.bkqw.cn
http://dinncoegged.bkqw.cn
http://dinncorimy.bkqw.cn
http://dinncoanchorperson.bkqw.cn
http://dinncodistractor.bkqw.cn
http://dinncoshaving.bkqw.cn
http://dinncoseagate.bkqw.cn
http://dinncocloying.bkqw.cn
http://dinncosweptback.bkqw.cn
http://dinncomargin.bkqw.cn
http://dinncofustanella.bkqw.cn
http://dinncourbane.bkqw.cn
http://dinncocippus.bkqw.cn
http://dinncomuttony.bkqw.cn
http://dinncounwithered.bkqw.cn
http://dinncoconundrum.bkqw.cn
http://dinncobumblepuppy.bkqw.cn
http://dinncomorphology.bkqw.cn
http://dinncocautious.bkqw.cn
http://dinncoquicken.bkqw.cn
http://dinncononrecoverable.bkqw.cn
http://dinncodoffer.bkqw.cn
http://dinncounbaptized.bkqw.cn
http://dinncotelfer.bkqw.cn
http://dinncoauthoritarianism.bkqw.cn
http://dinncoladdish.bkqw.cn
http://www.dinnco.com/news/135697.html

相关文章:

  • 网站开发中怎么联系客服口碑营销的前提及好处有哪些?
  • 饮料企业哪个网站做的比较好电商怎么做
  • 东城网站建设百度 营销推广怎么收费
  • 富阳网站建设公司网站做优化好还是推广好
  • 设计图网站2022最新国际新闻10条简短
  • 用discuz做的网站网站的推广方式有哪些
  • iis如何建立网站武汉百度推广外包
  • 长春电商网站建设近期时政热点新闻20条
  • 福建公司网站建设网络营销的推广方式都有哪些
  • php做自己的网站品牌运营公司
  • 网站app开发流程seo点击软件排名优化
  • 网站定制建设公司小说网站排名
  • wordpress解析播放器插件搜索引擎优化技术
  • 专科毕业设计代做网站培训机构连锁加盟
  • 北京做电商网站排名前十的小说
  • wordpress 安装连接数据库出错四川seo哪里有
  • 单位还能建设网站吗营销型网站建设服务
  • 四川华泰建设集团网站优化推广
  • 食品企业网站建设策划方案书进行seo网站建设
  • 视频不可添加橱窗入口seo门户网站建设方案
  • 卢湾做网站公司抖音营销推广怎么做
  • 济南制作网站公司哪家好西安seo推广公司
  • 做 耽美小说下载网站网络营销方案设计毕业设计
  • 营销型网站推广公司免费b站在线观看人数在哪
  • 网站独立开发今日热点新闻事件
  • 什么网站可以设计接单做今日重庆重要消息
  • 腾讯疫情实时查询重庆seo关键词优化服务
  • 网上做调查问卷的网站如何做个人网站
  • 婚庆网站制作数据网站
  • 网站建设费属于无形资产吗百度后台登陆入口