有了底图数据之后,就能够在地图上开发各种功能,比如打个点、画根线、填充面等等操作,这就需要矢量格式的数据。

矢量数据空间类型有 点(Point)、MultiPoint(多点)、线(LineString)、多线(MultiLineString)、面(Polygon)、多面(MultiPolygon)、混和类型(GeometryCollection);

地图引擎都支持矢量数据的绘制,按照颜色、图标、线宽等形式显示,在地图的常规开发中,使用最多的坐标格式是经纬度(wgs84/cgcs2000),不同坐标系需要事先转换一下,js版的proj4,支持对坐标系的转换。

矢量文件存储:

常用的文件存储方式有shp(ESRI shapefile)、geojson格式;

shp格式通常包含.shp、.dbf、.shx、.prj等几个文件组成,使用专业的gis软件或者开发库才能够进行操作;

geojson是以json的形式对空间数据进行存储,是用文本直接可读的,使用js解析是非常方便的;

在存储空间占用上,shp要比同样数据的geojson要小。

geojson简单数据样例:

{

"type": "FeatureCollection",

"features": [

    {

     "type": "Feature",

     "properties": {"id": 1},

     "geometry":

     {

        "type": "Point",

        "coordinates": [100.0, 0.0]

     }

    },

    {

     "type": "Feature",

     "properties": {"id": 2},

     "geometry":

     {

        "type": "LineString",

         "coordinates": [

             [100.0, 0.0],

             [101.0, 1.0]

         ]

     }

    },

    {

     "type": "Feature",

     "properties": {"id": 3},

     "geometry":

     {

         "type": "Polygon",

         "coordinates": [

             [

                 [100.0, 0.0],

                 [101.0, 0.0],

                 [101.0, 1.0],

                 [100.0, 1.0],

                 [100.0, 0.0]

             ]

         ]

     }

    }

 ]

}