GeoJSON中線要素MultiLineString類型與LineString類型的區別


一、GeoJSON中MulitLineString類型與LineString類型的主要區別如下:

    1)一個MultiLineString要素中可以包含一條或多條互不相連的線段,這些線段被當做同一個要素,共享同一份屬性信息。一個LineString類型的要素中只能包含一條線段,屬性信息被這條線段所獨享;

    2)當有多條相鄰的屬性信息相同的線段時,使用MultiLineString類型,只要一個要素(數據庫中的一條記錄)即可表示,而使用LineString類型,卻需要創建多個要素。因此,不難發現MultiLineString類型更節省存儲空間;

    3)GeoJSON文件中,LineString類要素的coordinates屬性用二維數組表示,而MultiLineString類要素用三維數組表示;

{
    "type": "Feature",
    "geometry": {
        "type": "MultiLineString",
        "coordinates": [
            [
                [119.283461766823521,35.113845473433457],
                [119.285033114198498,35.11405167501087]
            ],
            [
                [119.186893667167482,34.88690637041627],
                [119.186947247282234,34.890273599368562]
            ]
        ]
    }
}
{ 
    "type": "Feature",
    "geometry": {
        "type": "LineString",
        "coordinates": [
            [119.207185494071,34.9298513918505],
            [119.207555586034,34.9294932576001]
        ]
    }
}

    4)常用的shp格式的矢量文件中線要素用Polyline類型表示,並不嚴格區分LineString與MultiLineString。

二、下面是MultiLineString類型的圖層和LineString類型的圖層在Arcgis中的展示效果。

 

 在MultiLineString圖層和LineString圖層中都只選中了一個要素,然而在MultiLineString圖層中卻有三條線段被選中了。並且,在MultiLineString圖層中,無法單獨選中這三條線段中的某一條。

 可見這三條線段被當做一個整體,即一個MultiLineString要素。

三、當一份GeoJSON文件中,既包含MultiLineSting類型的要素又包含LineString類型的要素時,處理起來會比較繁瑣。此時,一個比較好的做法是把所有的線要素都轉為LineString類型,處理方法如下:

    1)把GeoJSON文件轉化為shp文件(可以使用QGIS來轉);

    2)Arcgis中的要素轉線工具(Data Management Tools -> Features -> Feature To Line)可以將所有的線要素都轉為LineString類型;

    3)利用Arcgis中的要素轉JSON工具(Conversion Tools -> JSON -> Features To JSON)將shp文件轉回GeoJson文件。

另外,GeoJSON中MulitLineString類型對應Arcgis中的Multipart line類型(可以翻譯為“多部分線”)。Arcgis中類似的概念,還有Multipoint(多點)、Multipart polygon(多部分多邊形)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM