利用java后台进行geoserver查询

使用后台的原因

由于项目要求,之前的函数必须要拆开封装,但对于jsonp来说,回调函数一旦分开,就会有异步的问题(jsonp永远都是异步的,除非你将处理都放到回调中去)。所以考虑从前台传参到后台方法去处理,后台再通过url来进行写入。

后台的主要实现方式

/**
     * geoserver查询
     * @param url 基地址
     * @param layer 图层名
     * @param key 键
     * @param value 值
     * @return 
     */
    public String Geo2server(String url,String layer,String key,String value){
    	StringBuilder json = new StringBuilder();  
    	MsgBox box = null;
        try {  
        	url += "?service=WFS&version=1.1.0&request=GetFeature&typeName=" + layer  +
        		   "&outputFormat=application%2Fjson&filter=<Filter><PropertyIsEqualTo>" +
        		   "<PropertyName>"+ key +"</PropertyName>" + "<Literal>"+  value +"</Literal>" +
        		   "</PropertyIsEqualTo></Filter>";
        	URL newUrl = new URL(url);
        	HttpURLConnection conn = (HttpURLConnection) newUrl.openConnection();
        	BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));    
            String inputLine = null;  
            while ( (inputLine = in.readLine()) != null) {  
                json.append(inputLine);  
            }  
            in.close();  
        } catch (MalformedURLException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        } 
       return json.toString();
    }

注意事项

由于没有做数据的分析,所以有可能返回错误的数据,但概率很小,只要你地址没写出,没数据的时候也能返回null,也能成功。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值