zoukankan      html  css  js  c++  java
  • 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(多部分多边形)。

  • 相关阅读:
    第五课 主引导程序的扩展 下
    C.Candy
    B.大钉骑马走江湖
    A喝酒(北京林业大学校赛)
    HDU 5666 Segment
    南京理工大学第八届校赛题目题解(部分)
    TCO 2016 Round 1B
    139. Word Break
    90. Subsets II
    78. Subsets
  • 原文地址:https://www.cnblogs.com/ben-/p/14597447.html
Copyright © 2011-2022 走看看