一、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(多部分多邊形)。