android 使用要素服务,android请求WMS、WFS服务查询

// 请求wms服务查询要素(点查询)

String wmsUrl= "http://192.168.0.1:8080/gisserver/zg/wms";

HashMap paramsMap = new HashMap<>();

// 查询服务的类型

paramsMap.put("SERVICE","WMS");

// 查询服务的版本号

paramsMap.put("VERSION","1.1.0");

// 请求的方法名称 -- 当前为获取要素信息

paramsMap.put("REQUEST","GetFeatureInfo");

// 查询结果显示数量,默认为1

paramsMap.put("FEATURE_COUNT","50");

// 图层的渲染样式,默认为""

paramsMap.put("STYLES","");

// 待查询的图层名称集合 用逗号分隔

paramsMap.put("QUERY_LAYERS","zgyd");

// 地图上的可视图层名称集合 用逗号分隔

paramsMap.put("LAYERS","zgyd");

// 查询结果输出格式 -- 当前指定为json格式

paramsMap.put("INFO_FORMAT","application/json");

// 地图的坐标系参考

paramsMap.put("SRS","EPSG:2383");

// 查询的点坐标 -- 值为点击的屏幕像素值 差异范围 用于生成下面的边界范围

paramsMap.put("X","50");

paramsMap.put("Y","50");

// 地图范围的边界 格式为坐标参考坐标 minx , miny ,maxx ,maxy 用逗号分隔

// 计算屏幕坐标 范围

Point minPoint = new Point(point.getX() - 50, point.getY() + 50);

Point maxPoint = new Point(point.getX() + 50, point.getY() - 50);

Point minEPoint = mMapView.toMapPoint(minPoint);

Point maxEPoint = mMapView.toMapPoint(maxPoint);

paramsMap.put("BBOX", minEPoint.getX() + "," + minEPoint.getY() + "," + maxEPoint.getX() + "," + maxEPoint.getY());

// openlayers中底层代码中的常量 -- 这里模拟-写死了(表示不清楚为啥是101)

paramsMap.put("WIDTH","101");

paramsMap.put("HEIGHT","101");

RequestCall call = OkHttpUtils.get().url(wfsUrl).params(paramsMap).build();

call.execute(new StringCallback() {

@Override

public void onError(Call call, Exception e, int id) {

}

@Override

public void onResponse(String response, int id) {

LogUtil.i(response);

}

});

// 请求wfs服务按条件查询

String wfsUrl = "http://192.168.0.1:8080/zgisserver/zg/wfs";

HashMap paramsMap = new HashMap<>();

// 查询服务的类型

paramsMap.put("SERVICE", "WFS");

// 查询服务的版本号

paramsMap.put("VERSION", "1.0.0");

// 请求的方法名称 -- 当前为获取要素信息

paramsMap.put("REQUEST", "GetFeature");

// 待查询的图层名称集合 用逗号分隔

paramsMap.put("TYPENAME","zgyd");

// 查询结果输入格式

paramsMap.put("OUTPUTFORMAT", "json");

/* 查询条件自行按需求使用 */

// 根据条件查询

String filterStr = "YDXZ = '行政办公用地'";

paramsMap.put("CQL_FILTER",filterStr);

// 根据FEATUREID 查询

paramsMap.put("FEATUREID","zgyd.792");

// 查询结果过滤 -- 查询的字段名称(返回需要的字段属性,没有设置的字段则不显示)...

paramsMap.put("PROPERTYNAME","YDXZ");

// 地图范围的边界 格式为坐标参考坐标 minX , minY ,maxX ,maxY 用逗号分隔

paramsMap.put("BBOX","485745.76724246074,3770802.4821885014,486084.0751155724,3771062.1138120466");

// 返回结果的最大数量

paramsMap.put("MAXFEATURES","10");

注:FEATUREID 、BBOX和 CQL_FILTER使用时互斥,不能同时使用。

网络请求同wms服务查询。

对查询结果的处理下次再写=。=!

感谢大神们的分享!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值