GeoJson和TopoJson數(shù)據(jù)格式的對(duì)比

GeoJson格式數(shù)據(jù):

//這是一個(gè)簡(jiǎn)單的矩形(坐標(biāo)系:WGS_84)
{
    "type":"FeatureCollection", 
    "features": [
        {
        "type":"Feature",
        "geometry":{
            "type":"Polygon",
            "coordinates":
            [
                [[117.42218831167838,31.68971206252246],
                [118.8025942451759,31.685801564127132],
                [118.79961418869482,30.633841626314336],
                [117.41920825519742,30.637752124709664],
                [117.42218831167838,31.68971206252246]]
            ]
        },
        "properties":{"Id":0}
        }
    ]
}

TopoJson格式數(shù)據(jù):

//這是一個(gè)簡(jiǎn)單的矩形(坐標(biāo)系:WGS_84)
{
"type":"Topology","arcs":
    [
        [[0,100],[100,0],[0,-100],[-100,0],[0,100]]
    ],
    "transform":
    {
    "scale":
        [0.013833859899784785,0.010558704362081244],
        "translate":
        [117.41920825519742,30.633841626314336]
    },
    "objects":
    {
    "polygon":
        {
        "type":"GeometryCollection",
        "geometries":
            [
                {
                "arcs":[[0]],
                "type":"Polygon",
                "properties":{"Id":0}
                }
            ]
        }
    }
}

兩個(gè)JSON數(shù)據(jù)展示是同一個(gè)矩形面播揪,對(duì)比一下差異:
GeoJson:
(1)GeoJson 是用于描述地理空間信息的數(shù)據(jù)格式。GeoJSON 不是一種新的格式潦闲,其語(yǔ)法規(guī)范是符合 JSON 格式的胳岂,只不過(guò)對(duì)其名稱進(jìn)行了規(guī)范桶唐,專門(mén)用于表示地理信息族沃。
(2)GeoJson 的最外層是一個(gè)單獨(dú)的對(duì)象(object)。這個(gè)對(duì)象有:

  • 幾何體(Geometry)
  • 特征(Feature)
  • 特征集合(FeatureCollection)
    每一個(gè)對(duì)象都有一個(gè)成員變量 coordinates命斧。
    (3)type 的值為 GeometryCollection田晚,那么該對(duì)象一定要有變量 geometries。
{
    "type": "GeometryCollection",
    "geometries": [
        {
            "type": "Point",
            "coordinates": [116.3232, 35.2154]
        },
        {
            "type": "LineString",
            "coordinates": [ [116.3232, 35.2154], [116.854,35.8854] ]
        }
    ]
}

type 的值為 Feature,那么此特征對(duì)象必須包含有變量 geometry国葬,表示幾何體贤徒,geometry 的值必須是幾何體對(duì)象。此特征對(duì)象還包含有一個(gè) properties汇四,表示特性接奈,properties 的值可以是任意 JSON 對(duì)象或 null捉兴。

{
    "type": "Feature",
    "properties": {
        "name": "合肥"
    },
    "geometry": {
        "type": "Point",
        "coordinates": [ 116.3751, 31.5631]
    }
}

如果 type 的值為 FeatureCollection(特征集合)屁擅,則該對(duì)象必須有一個(gè)名稱為 features 的成員。features 的值是一個(gè)數(shù)組为狸,數(shù)組的每一項(xiàng)都是一個(gè)特征對(duì)象背苦。

TopoJson:
TopoJSON 是 GeoJSON 按拓?fù)鋵W(xué)編碼后的擴(kuò)展形式互捌,是由 D3 的作者 Mike Bostock 制定的潘明。相比 GeoJSON 直接使用 Polygon、Point 之類(lèi)的幾何體來(lái)表示圖形的方法秕噪,TopoJSON 中的每一個(gè)幾何體都是通過(guò)將共享邊(被稱為arcs)整合后組成的钳降。
TopoJSON 消除了冗余,文件大小縮小了 80%腌巾,因?yàn)椋哼吔缇€只記錄一次(省界線為例)遂填。地理坐標(biāo)使用整數(shù),不使用浮點(diǎn)數(shù)澈蝙。

推薦網(wǎng)站:
在線生成 GeoJSON:http://geojson.io/
GeoJSON 和 TopoJSON簡(jiǎn)化吓坚、轉(zhuǎn)換:http://mapshaper.org/
GeoServer裝載插件可以生成GeoJson和TopoJson

現(xiàn)在大多數(shù)地圖API支持GeoJson和TopoJson格式數(shù)據(jù)地圖的調(diào)用(Openlayers、Leaflet等)灯荧,這些Json文件只記錄空間要素的幾何屬性礁击,數(shù)據(jù)在前端渲染進(jìn)行展示。

Cesium加載GeoJson數(shù)據(jù)效果
//貼出部分代碼
    var promise = Cesium.GeoJsonDataSource.load('date/wuhu.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);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漏麦,一起剝皮案震驚了整個(gè)濱河市客税,隨后出現(xiàn)的幾起案子况褪,更是在濱河造成了極大的恐慌撕贞,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件测垛,死亡現(xiàn)場(chǎng)離奇詭異捏膨,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)食侮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)号涯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人锯七,你說(shuō)我怎么就攤上這事链快。” “怎么了眉尸?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵域蜗,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我噪猾,道長(zhǎng)霉祸,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任袱蜡,我火速辦了婚禮丝蹭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘坪蚁。我一直安慰自己奔穿,他們只是感情好镜沽,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著贱田,像睡著了一般淘邻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上湘换,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天宾舅,我揣著相機(jī)與錄音,去河邊找鬼彩倚。 笑死筹我,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的帆离。 我是一名探鬼主播蔬蕊,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼哥谷!你這毒婦竟也來(lái)了岸夯?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤们妥,失蹤者是張志新(化名)和其女友劉穎猜扮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體监婶,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旅赢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惑惶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片煮盼。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖带污,靈堂內(nèi)的尸體忽然破棺而出僵控,到底是詐尸還是另有隱情,我是刑警寧澤鱼冀,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布报破,位于F島的核電站,受9級(jí)特大地震影響雷绢,放射性物質(zhì)發(fā)生泄漏泛烙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一翘紊、第九天 我趴在偏房一處隱蔽的房頂上張望蔽氨。 院中可真熱鬧,春花似錦、人聲如沸鹉究。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)自赔。三九已至妈嘹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绍妨,已是汗流浹背润脸。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留他去,地道東北人毙驯。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像灾测,于是被迫代替她去往敵國(guó)和親爆价。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容