一、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文件。