Cesium加載GeoJson數(shù)據(jù)(shp轉(zhuǎn)化的json數(shù)據(jù))

1、shp轉(zhuǎn)換成json格式

此處整理了兩種shp轉(zhuǎn)為json格式的方式:一是使用工具;二是使用ArcGIS進行轉(zhuǎn)換。

1.1、ArcGIS轉(zhuǎn)換

1、使用ArcGIS將shp文件的地理坐標設(shè)置為WGS_198484并導(dǎo)出為shp數(shù)據(jù)。
(1)打開ArcGIS的Toolbox工具箱,選擇“定義投影”:


image.png

(2)選擇要轉(zhuǎn)換的shp格式文件并選擇地理坐標為 WGS_1984,單擊確認。


image.png

(3)將shp(WGS1984坐標系)數(shù)據(jù)導(dǎo)出。
image.png

(4)打開ArcGIS的Toolbox工具,選擇轉(zhuǎn)換工具中的要素轉(zhuǎn)JSON,并選擇前面設(shè)置過地理坐標的shp文件。
image.png

image.png
1.2、使用mapshaper工具轉(zhuǎn)換

(1)打開網(wǎng)站 http://www.mapshaper.org/

image.png

(2)點擊select按鈕,選擇目標shp圖層


image.png

(3)確認,inport導(dǎo)入。


image.png

(4)點擊右上角的export,選擇GeoJson ,輸入encoding=utf8,點擊export。
image.png

2、Cesium添加GeoJson數(shù)據(jù)

將前面轉(zhuǎn)換得到的json格式世界數(shù)據(jù)疊加到Cesium的底圖上。

//添加geojson格式地理數(shù)據(jù)(由shp格式文件轉(zhuǎn)換得來)
    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格式文件中有包含各個面的面積或者周長的話,通過一下代碼使得加載出來的json數(shù)據(jù)呈立體形狀

entity.polygon.extrudedHeight= entity.properties.Shape_Area / 100000.0;
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容