szgeoinfo.layer.ArcGISLayer

Class: szgeoinfo.layer.ArcGISLayer


new ArcGISLayer(id, name, url, projstr, layerdef)

ArcgisRest图层

Parameters:
Name Type Description
id string

图层Id,可以根据Id,查询操作图层

name string

图层名称

url string

ArcGIS Rest服务url,如http://localhost/arcgis/services/modelmap/MapServer,按索引显示图层,拼接'/'+索引,用&支持多索引

projstr string

坐标系编号,默认EPSG:3857, 同时支持EPSG:4326、EPSG:4490和EPSG:4547等WGS84和CGCS2000的坐标系

layerdef string

过滤表达式,通过定义特定的表达式过滤独立图层中的要素

Example
 var allUrl='http://localhost:6080/arcgis/rest/services/theme/MapServer';//显示该服务的所有图层
 var singleUrl='http://localhost:6080/arcgis/rest/services/theme/MapServer/0';//显示该服务的索引为0的图层
 var choiceUrl='http://localhost:6080/arcgis/rest/services/theme/MapServer/0&2';//显示该服务的索引为0和2的图层
 var layer = new szgeoinfo.layer.ArcGISLayer(123, "图层","http://localhost:6080/arcgis/rest/services/theme/MapServer");
 map.addArcGISRest(layer);

Methods


query(ind, queryParams, callback) → {feature}

查询ArcgisRest图层数据,单条件

Parameters:
Name Type Description
ind int

查询服务的图层索引

queryParams array | {szgeoinfo.layer.QueryParam}

查询对象数组

callback function

返回结果回掉函数

Returns:

返回查询结果

Example
var layer = new szgeoinfo.layer.ArcGISLayer(123, "图层","http://localhost:6080/arcgis/rest/services/MapServer", "EPSG:3857");
var query=new szgeoinfo.layer.QueryParam("CODE",szgeoinfo.Operator.EQUAL,"2631");
var querys=[query];
layer.query(0,querys,queryCallBack);

function queryCallBack(features){
        for(var i=0;i<features.length;i++){
                var feature=features[i];
                var coords=feature.getGeometry().getCoordinates();//获取feature的坐标
                var attribute=feature.getProperties();//获取feature的所有数据
                var code=feature.getProperties().CODE;//获取feature中字段为CODE的数据
        }
}

multipleQuery(ind, queryParams, connector, callback) → {feature}

查询ArcgisRest图层数据

Parameters:
Name Type Description
ind int

查询服务的图层索引

queryParams array | {szgeoinfo.layer.QueryParam}

查询对象数组

connector szgeoinfo.Connector

连接操作符,AND并,OR或。默认AND

callback function

返回结果回掉函数

Returns:

返回查询结果

Example
var layer = new szgeoinfo.layer.ArcGISLayer(123, "图层","http://localhost:6080/arcgis/rest/services/MapServer", "EPSG:3857");
var query=new szgeoinfo.layer.QueryParam("CODE",szgeoinfo.Operator.EQUAL,"2631");
var query1=new szgeoinfo.layer.QueryParam("GAOCHENG",szgeoinfo.Operator.EQUAL,0);
var querys=[query,query1];
layer.multipleQuery(0,querys,szgeoinfo.Connector.AND,queryCallBack);

function queryCallBack(features){
        for(var i=0;i<features.length;i++){
                var feature=features[i];
                var coords=feature.getGeometry().getCoordinates();//获取feature的坐标
                var attribute=feature.getProperties();//获取feature的所有数据
                var code=feature.getProperties().CODE;//获取feature中字段为CODE的数据
        }
}

pickFeature(id,offset,callback) → {array}

通过点击或者拉框获取feature信息

Parameters:
Name Type Description
id int

图层组中的图层id

offset number

偏移量,当触发点击事件时,会根据偏移量和点击的点构造出一个矩形范围入参

callback function

返回结果回掉函数

Returns:

返回featureList

Example
layer.pickFeature(123,0.00001,function(dates){
                    });