2015-07-02 7 views
8

Sto provando a fare una richiesta al mio Geoserver per recuperare le funzionalità vicino al tocco di un utente sulla mappa.Android compute right bbox per WMS getFeatureInfo

Image

La mappa prende tutto lo spazio. Perciò calcolato il BBOX in questo modo:

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; 

e la larghezza e l'altezza sono presi come belows:

mMapFragment.getView().getWidth(); 
mMapFragment.getView().getHeight(); 

mentre X e parametro Y sono calcolati nel modo seguente:

Point click = mMap.getProjection().toScreenLocation(latLng); 

dove latLng è il punto proveniente dall'evento onMapClick (LatLng) (riferimento qui: https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener).

L'URL risultante che ottengo è:

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 

Il problema è che il server restituisce sempre una risposta vuota, anche se so che ci sono caratteristiche lì perché posso vedere i punti sulla mappa. Cosa potrebbe essere?

Grazie in anticipo.

+0

Grazie per la domanda e ho anche trovato la soluzione fino ad ora non riesco a ottenere alcuna soluzione .. Come calcolare BBOX dalla regione = mMap.getProjection(). GetVisibleRegion(). LatLngBounds? BBOX dovrebbe essere in minx, miny, maxx, maxy .. Ho anche postato la domanda stackoverflow.com/questions/32391037/... Grazie in anticipo. – AnanThDev

risposta

1

È sufficiente aggiungere &buffer=10 (o un altro numero in base alle proprie esigenze) alla richiesta.

+0

Grazie per la domanda e ho anche trovato la soluzione fino ad ora non riesco a ottenere alcuna soluzione .. Come calcolare BBOX dalla regione = mMap.getProjection(). GetVisibleRegion(). LatLngBounds? BBOX dovrebbe essere in minx, miny, maxx, maxy .. Ho anche postato la domanda http://stackoverflow.com/questions/32391037/google-map-tile-provider-geoserver-and-wms/32392310#32392310 Grazie In avanzare.. – AnanThDev