利用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,也能成功。

转载自:https://blog.csdn.net/u013323965/article/details/52522656

You may also like...