Android如何计算WMS getFeatureInfo请求的正确bbox?

8

我正在尝试向我的Geoserver发出请求,以检索与用户在地图上点击附近的要素。

Image

由于地图占据了所有空间,因此我按照以下方式计算了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

问题在于服务器总是返回空响应,即使我知道那里有功能,因为我可以看到地图上的点。这可能是什么问题?谢谢。

感谢您的提问,我一直在寻找解决方案,但是到目前为止我还没有找到任何解决方案。如何从region = mMap.getProjection().getVisibleRegion().latLngBounds计算BBOX?BBOX应该是minx,miny,maxx,maxy。我也在stackoverflow.com/questions/32391037/…上发布了问题。提前致谢。 - AnanThDev
1个回答

1

只需在请求中添加&buffer=10(或根据您的需要选择其他数字),即可完成。


感谢您的问题,我一直在寻找解决方案,但到目前为止我还没有找到任何解决方案。如何从region = mMap.getProjection().getVisibleRegion().latLngBounds计算BBOX?BBOX应该是minx,miny,maxx,maxy。我也发布了问题http://stackoverflow.com/questions/32391037/google-map-tile-provider-geoserver-and-wms/32392310#32392310提前致谢。 - AnanThDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接