1、shp轉(zhuǎn)換成json格式
此處整理了兩種shp轉(zhuǎn)為json格式的方式:一是使用工具媒殉;二是使用ArcGIS進(jìn)行轉(zhuǎn)換交播。
1.1、ArcGIS轉(zhuǎn)換
1蝇裤、使用ArcGIS將shp文件的地理坐標(biāo)設(shè)置為WGS_198484并導(dǎo)出為shp數(shù)據(jù)廷支。
(1)打開(kāi)ArcGIS的Toolbox工具箱,選擇“定義投影”:
image.png
(2)選擇要轉(zhuǎn)換的shp格式文件并選擇地理坐標(biāo)為 WGS_1984,單擊確認(rèn)猖辫。
image.png
(3)將shp(WGS1984坐標(biāo)系)數(shù)據(jù)導(dǎo)出酥泞。
image.png
(4)打開(kāi)ArcGIS的Toolbox工具砚殿,選擇轉(zhuǎn)換工具中的要素轉(zhuǎn)JSON啃憎,并選擇前面設(shè)置過(guò)地理坐標(biāo)的shp文件。
image.png
image.png
1.2似炎、使用mapshaper工具轉(zhuǎn)換
(1)打開(kāi)網(wǎng)站 http://www.mapshaper.org/
image.png
(2)點(diǎn)擊select按鈕辛萍,選擇目標(biāo)shp圖層
image.png
(3)確認(rèn),inport導(dǎo)入羡藐。
image.png
(4)點(diǎn)擊右上角的export贩毕,選擇GeoJson ,輸入encoding=utf8,點(diǎn)擊export。
image.png
2仆嗦、Cesium添加GeoJson數(shù)據(jù)
將前面轉(zhuǎn)換得到的json格式世界數(shù)據(jù)疊加到Cesium的底圖上辉阶。
//添加geojson格式地理數(shù)據(jù)(由shp格式文件轉(zhuǎn)換得來(lái))
Cesium.Math.setRandomNumberSeed(0);
var promise =Cesium.GeoJsonDataSource.load('Output_bou2_4p.json');
promise.then(function (dataSource) {
viewer.dataSources.add(dataSource);
var entities =dataSource.entities.values;
var colorHash = {};
for (var i = 0; i < entities.length;i++) {
var entity = entities[i];
var name = entity.name;
var color = colorHash[name];
if (!color) {
color =Cesium.Color.fromRandom({
alpha: 1.0
});
colorHash[name] = color;
}
entity.polygon.material = color;
entity.polygon.outline = false;
entity.polygon.extrudedHeight =5000.0;
}
});
viewer.flyTo(promise);
延伸:如果shp格式文件中有包含各個(gè)面的面積或者周長(zhǎng)的話,通過(guò)一下代碼使得加載出來(lái)的json數(shù)據(jù)呈立體形狀
entity.polygon.extrudedHeight= entity.properties.Shape_Area / 100000.0;
image.png