其他分享
首页 > 其他分享> > geoJSON中线要素MultiLineString类型与LineString类型的区别

geoJSON中线要素MultiLineString类型与LineString类型的区别

作者:互联网

一、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,类型,MultiLineString,图层,LineString
来源: https://www.cnblogs.com/ben-/p/14597447.html