Skip to main content

矢量数据解析器

CimissStationFeatureProvider

天擎/CIMISS站点数据访问器

对于如下格式的数据,可以直接使用CimissStationFeatureProvider来构建provider,CimissStationFeatureProvider内部会将这个数据转为QE矢量数据模型。

{
    "returnCode":"0",
    "returnMessage":"Query Succeed",
    "rowCount":"2430",
    "colCount":"12",
    "requestParams":"times=20190307000000&datacode=SURF_CHN_MUL_HOR&stalevels=011,012,013&elements=Station_Name,Station_Id_C,Lat,Lon,PRS,TEM,RHU,PRE_1h,PRE_24h,WIN_D_INST,WIN_S_INST,WEP_Now","requestTime":"2019-03-08 14:46:09",
    "responseTime":"2019-03-08 14:46:10",
    "takeTime":"1.135",
    "fieldNames":"站名 区站号(字符) 纬度 经度 气压 温度/气温 相对湿度 过去1小时降水量 过去24小时降水量 瞬时风向 瞬时风速 现在天气",
    "fieldUnits":"- - 度 度 百帕 摄氏度(℃) 百分率 毫米 毫米 度 米/秒 -",
    "DS":[
        {
            "Station_Name":"沅江",
            "Station_Id_C":"57671",
            "Lat":"28.85",
            "Lon":"112.3667",
            "PRS":"1019.4",
            "TEM":"9.6",
            "RHU":"95",
            "PRE_1h":"0",
            "PRE_24h":"999990",
            "WIN_D_INST":"360",
            "WIN_S_INST":"4.2",
            "WEP_Now":"10"
        },{
            "Station_Name":"阿拉山口",
            "Station_Id_C":"51232",
            "Lat":"45.1833",
            "Lon":"82.55",
            "PRS":"979.9",
            "TEM":"-4.2",
            "RHU":"92",
            "PRE_1h":"0",
            "PRE_24h":"0",
            "WIN_D_INST":"309",
            "WIN_S_INST":"3.3",
            "WEP_Now":"10"
        },
        ...
    ]
}

创建数据源,传入图层

const provider = new CimissStationFeatureProvider(json);
const layer = new LGeoJSONLayer().setDataSource(provider).setDrawOptions({...});
layer.addTo(map);

完整示例

PointArrayFeatureProvider

数组类站点数据的访问器

对于类似如下格式的数组类站点数据,可以使用PointArrayFeatureProvider构建provider。

const dataArr = [
    {
        "staName":"沅江",
        "staId":"57671",
        "lat":"28.85",
        "lon":"112.3667",
        "PRS":"1019.4",
        "TEM":"9.6",
        "RHU":"95",
        "PRE_1h":"0",
        "PRE_24h":"999990",
        "WIN_D_INST":"360",
        "WIN_S_INST":"4.2",
        "WEP_Now":"10"
    },{
        "staName":"阿拉山口",
        "staId":"51232",
        "lat":"45.1833",
        "lon":"82.55",
        "PRS":"979.9",
        "TEM":"-4.2",
        "RHU":"92",
        "PRE_1h":"0",
        "PRE_24h":"0",
        "WIN_D_INST":"309",
        "WIN_S_INST":"3.3",
        "WEP_Now":"10"
    },
    ...
]

实例化PointArrayFeatureProvider时传两个参数,第一个是数组对象也就是站点数据,第二个是对这个数组的一些描述信息,满足IPointArrayFeatureProviderOptions接口,主要用到的有经纬度字段名,id字段名等。如果站点数组中字段值跟该接口中默认值一致的化,则可不传。

const options = {
  lonField: "lon",
  latField: "lat",
  idField: "staId"
}
const dataSource = new PointArrayFeatureProvider(dataArr, options);

完整示例

GeoJSONFeatureProvider

GeoJSON的数据访问器

GeoJSONFeatureProvider是GeoJSON数据本身的数据访问器,因为GeoJSON不一定都表示为FeatureCollection,因此GeoJSONFeatureProvider的作用就是将所有GeoJSON类型的对象封装为FeatureCollection形式。

完整示例