android请求WMS、WFS服务查询

参考文档:https://www.cnblogs.com/naaoveGIS/p/5508882.html

WMS服务查询:
GeoServer官网上对其WMS规范的描述地址为http://docs.geoserver.org/stable/en/user/services/wms/index.html
提供了GetMap、GetFeatureInfo等接口
这里用到的就是GetFeatureInfo,详细描述请看官网的描述:
GetFeatureInfo描述地址:http://docs.geoserver.org/stable/en/user/services/wms/reference.html#getfeatureinfo
上代码

// 请求wms服务查询要素(点查询)
String wmsUrl= "http://192.168.0.1:8080/gisserver/zg/wms";
HashMap<String,String> 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服务查询:
GeoServer官网上对其WFS规范的描述地址为http://docs.geoserver.org/stable/en/user/services/wfs/index.html
提供了GetCapabilities、GetFeature等接口
这里用到的就是GetFeature,详细描述请看官网的描述:
GetFeature描述地址:http://docs.geoserver.org/stable/en/user/services/wfs/reference.html#getfeature
上代码

// 请求wfs服务按条件查询
String wfsUrl = "http://192.168.0.1:8080/zgisserver/zg/wfs";
HashMap<String, String> 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服务查询。
对查询结果的处理下次再写=。=!

参考文档:https://www.cnblogs.com/naaoveGIS/p/5508882.html

感谢大神们的分享!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容