Android 为 WMS getFeatureInfo 计算正确的 bbox
Android compute right bbox for WMS getFeatureInfo
我正在尝试向我的 Geoserver 发出请求,以检索地图上用户点击附近的要素。
地图包罗万象space。因此我以这种方式计算了 BBOX:
region = mMap.getProjection().getVisibleRegion().latLngBounds;
double left = region.southwest.longitude;
double top = region.northeast.latitude;
double right = region.northeast.longitude;
double bottom = region.southwest.latitude;
宽高取值如下:
mMapFragment.getView().getWidth();
mMapFragment.getView().getHeight();
而X和Y参数的计算方式如下:
Point click = mMap.getProjection().toScreenLocation(latLng);
其中 latLng 是来自事件 onMapClick(LatLng) 的点(此处参考:https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener)。
我得到的结果URL是:
http://localhost/geoserver/sindot/wms?service=WMS&request=GetFeatureInfo&info_format=application%2Fjson&version=1.1.1&srs=EPSG%3A3857&bbox=1222173.74033,5056403.44084,1222174.11356,5056403.7028&query_layers=sindot:verticale&layers=sindot:verticale&feature_count=3&styles=tabletb3lab&width=2048&height=1262&x=1441&y=503
问题是服务器 returns 总是一个空的响应,即使我知道那里有特征,因为我可以在地图上看到这些点。可能是什么?
提前致谢。
只需在请求中添加&buffer=10
(或根据您的需要添加其他数字)。
我正在尝试向我的 Geoserver 发出请求,以检索地图上用户点击附近的要素。
地图包罗万象space。因此我以这种方式计算了 BBOX:
region = mMap.getProjection().getVisibleRegion().latLngBounds;
double left = region.southwest.longitude;
double top = region.northeast.latitude;
double right = region.northeast.longitude;
double bottom = region.southwest.latitude;
宽高取值如下:
mMapFragment.getView().getWidth();
mMapFragment.getView().getHeight();
而X和Y参数的计算方式如下:
Point click = mMap.getProjection().toScreenLocation(latLng);
其中 latLng 是来自事件 onMapClick(LatLng) 的点(此处参考:https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener)。
我得到的结果URL是:
http://localhost/geoserver/sindot/wms?service=WMS&request=GetFeatureInfo&info_format=application%2Fjson&version=1.1.1&srs=EPSG%3A3857&bbox=1222173.74033,5056403.44084,1222174.11356,5056403.7028&query_layers=sindot:verticale&layers=sindot:verticale&feature_count=3&styles=tabletb3lab&width=2048&height=1262&x=1441&y=503
问题是服务器 returns 总是一个空的响应,即使我知道那里有特征,因为我可以在地图上看到这些点。可能是什么?
提前致谢。
只需在请求中添加&buffer=10
(或根据您的需要添加其他数字)。