From: Jon B. <jon...@go...> - 2010-11-29 10:01:11
|
Sorry if I wasn't clear in my previous email, but the server is actually receiving and dealing with the request. I've tried another remote server and I get the same problem. I've debugged the website with Chrome, and it just hangs when making the request - it says "pending" under Status. However, the Chrome debugging console shows the following errors: XMLHttpRequest cannot load http://localhost:8080/geoserver/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&LAYERS=topp%3Atasmania_state_boundaries&QUERY_LAYERS=topp%3Atasmania_state_boundaries&STYLES=&BBOX=140.328735%2C-44.906872%2C151.98523%2C-38.315075&FEATURE_COUNT=10&HEIGHT=600&WIDTH=1061&FORMAT=image%2Fpng&INFO_FORMAT=text%2Fhtml&SRS=EPSG%3A4326&X=592&Y=322. Origin http://127.0.0.1:8888 <http://127.0.0.1/> is not allowed by Access-Control-Allow-Origin. 1. Uncaught java.lang.IllegalArgumentException: Something other than a Java object was returned from JSNI method '@org.gwtopenmaps.openlayers.client.util.JSObjectHelper::getProperty(Lorg/gwtopenmaps/openlayers/client/util/JSObject;Ljava/lang/String;)': JS value of type int, expected java.lang.Object wms<http://localhost:8080/geoserver/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&LAYERS=topp%3Atasmania_state_boundaries&QUERY_LAYERS=topp%3Atasmania_state_boundaries&STYLES=&BBOX=140.328735%2C-44.906872%2C151.98523%2C-38.315075&FEATURE_COUNT=10&HEIGHT=600&WIDTH=1061&FORMAT=image%2Fpng&INFO_FORMAT=text%2Fhtml&SRS=EPSG%3A4326&X=592&Y=322>Failed to load resource Following the link loads the correct result. Jon On 29 November 2010 08:42, Lukas Johansson <luk...@de...>wrote: > Have you checked with firebug if any request are actually sent? Probably > they aren’t as you get a JS error and you don’t see anything in the log at > the server. > > By just “dry reading” your code I don’t see anything that pops out. > > You do get a “String cannot be cast to JSObject” exception and the only row > I can guess cases this is: > > options.setLayers(getWMSMapLayers().toArray(new WMS[0])); > > > > What does getWMSMapLayers() return? Which toArray method is called?.... > > /Lukas > > > > > > *Från:* man...@go... [mailto: > man...@go...] *För *Jon Britton > > *Skickat:* den 26 november 2010 18:49 > *Till:* Lukas Johansson > *Kopia:* gwt-openlayers-users > *Ämne:* Re: [Gwt-openlayers-users] MapClickListener support > > > > Hi Lukas, > > > > I've added a WMSGetFeatureInfo control to my map, but when I make a request > (by clicking on the map) the map freezes. I've checked by WMS server logs > and it did receive a GetFeatureInfo request and seems to have returned a > result. > > > > I was originally testing in Google Chrome, but I tried Firefox and get the > same problem - however I also get a JavaScript exception: > > > > Uncaught JavaScript exception [uncaught exception: > java.lang.ClassCastException: java.lang.String cannot be cast to > org.gwtopenmaps.openlayers.client.util.JSObject] in , line 0 > > > > Any idea what could be causing this? My code is shown below. > > > > Thanks, > > > > Jon > > > > public void resetWMSSelectControl() { > > if (wmsSelectControl != null) > > > SmartWPS.getSmartWPS().getMap().removeControl(wmsSelectControl); > > WMSGetFeatureInfoOptions options = new > WMSGetFeatureInfoOptions(); > > options.setLayers(getWMSMapLayers().toArray(new > WMS[0])); > > options.setDrillDown(true); > > options.setQueryVisible(true); > > options.setInfoFormat("application/vnd.ogc.gml"); > > > > wmsSelectControl = new WMSGetFeatureInfo(options); > > wmsSelectControl.addGetFeatureListener(new > GetFeatureInfoListener() { > > > > @Override > > public void onGetFeatureInfo( > > > org.gwtopenmaps.openlayers.client.event.GetFeatureInfoListener.GetFeatureInfoEvent > eventObject) { > > VectorFeature[] > features = eventObject.getFeatures(); > > System.out.println("FeatureInfo: > " + eventObject.getText()); > > } > > }); > > > > > SmartWPS.getSmartWPS().getMap().addControl(wmsSelectControl); > > wmsSelectControl.activate(); > > } > > > > On 24 November 2010 16:01, Lukas Johansson <luk...@de...> > wrote: > > I’ve commited a version that make the control a more complete and which > uses the drilldown parameter introduced in OL 2.9[1] which can be used to > access multiple servers. > > In october we realized that my patch hadn’t been commited so this was > taken care of, however I do not think that its in the current stable build. > Instead you need to checkout your own version. > > > > [1] > http://dev.openlayers.org/releases/OpenLayers-2.9.1/doc/apidocs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html#OpenLayers.Control.WMSGetFeatureInfo.drillDown > > > > You add the controller to the map, if you do not use drilldown only to top > layer is queried. Most settings are set in WmsGetFeatureInfoOptions and not > on the control itself. > > > > Usage is something along this path (copied from our working code, but you > get the idea): > > WMSGetFeatureInfoOptions options = new WMSGetFeatureInfoOptions(); > > options.setLayers(arrayOfLayersToQuery)); > //allows you to tell what layers that should > be queried > > options.setDrillDown(true); > > options.setQueryVisible(true); > > options.setInfoFormat("application/vnd.ogc.gml"); > //return result as gml > > > > > > > > wmsSelectControl = new WMSGetFeatureInfo(options); > > wmsSelectControl.addGetFeatureListener(new GetFeatureInfoListener(){ > > > public void onGetFeatureInfo(GetFeatureInfoEvent eventObject) { > > VectorFeature[] features = eventObject.getFeatures(); > > > String html = "foo"; > > FrameCloud popup = new FramedCloud("MapFeaturePopup", > features[0].getCenterLonLat(), new Size(300, 400), html); > > } > > } > > map.addControl(wmsSelectControl); > > > > /Lukas > > > > *Från:* man...@go... [mailto: > man...@go...] *För *Jon Britton > *Skickat:* den 24 november 2010 16:42 > *Till:* Lukas Johansson > *Kopia:* gwt-openlayers-users > *Ämne:* Re: [Gwt-openlayers-users] MapClickListener support > > > > Hi Lukas, > > > > You haven't misunderstood, I wasn't aware there was a map control for this. > My client application is for displaying many WMS layers, possibly from > different servers. The user can add/remove WMS layers as they see fit by > using their own WMS URLs. What I want to do is display the feature info for > every layer currently visible on my map, but I'm struggling to figure out > how WMSGetFeatureInfo can be used for this as each control corresponds to > only one WMS URL. Would I need to make a new control for each map layer? > > > > Another problem is that the GWT-Openlayers WMGetFeatureInfo control seems > to be incomplete as I can't access many of it's properties directly (such as > url, title, layers...). > > > > Thanks, > > > > Jon > > > > On 24 November 2010 15:37, Lukas Johansson <luk...@de...> > wrote: > > You want the x/y of the mouseclick in order to construct a > WMSGetFeautureInfo? Why not use the existing WMSGetFeatureInfo control to > begin with? This will handle the events, the request to the server and you > can get it to produce a parsable result in GML from witch you can create > features. > > > > Or have I misunderstood your usecase? > > /Lukas > > > > > > *Från:* Jon Britton [mailto:jon...@go...] > *Skickat:* den 24 november 2010 15:20 > *Till:* gwt-openlayers-users > *Ämne:* [Gwt-openlayers-users] MapClickListener support > > > > Hi > > > > I'm trying to register a MapClickListener so that I can generate a > GetFeatureInfo request using the mouse x and y coordinates. Here is what > I've got so far: > > > > mw.getMap().getListeners().add(new MapClickListener() { > > @Override > > public void onClick(MapClickEvent e) { > > SC.say("Map click at " + e.getLonLat()); > > } > > }); > > > > However, getListeners() isn't supported as far as I can tell (I get an > UnsupportedOperationException on the first line above). Are there any plans > to implement this soon? Alternatively, is there any other way to access the > map coordinates of the mouse cursor? > > > > Thanks, > > > > Jon > > > > ------------------------------------------------------------------------------ > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! > Tap into the largest installed PC base & get more eyes on your game by > optimizing for Intel(R) Graphics Technology. Get started today with the > Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. > http://p.sf.net/sfu/intelisp-dev2dev > _______________________________________________ > Gwt-openlayers-users mailing list > Gwt...@li... > https://lists.sourceforge.net/lists/listinfo/gwt-openlayers-users > > > > > > ------------------------------------------------------------------------------ > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! > Tap into the largest installed PC base & get more eyes on your game by > optimizing for Intel(R) Graphics Technology. Get started today with the > Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. > http://p.sf.net/sfu/intelisp-dev2dev > _______________________________________________ > Gwt-openlayers-users mailing list > Gwt...@li... > https://lists.sourceforge.net/lists/listinfo/gwt-openlayers-users > > > > > ------------------------------------------------------------------------------ > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! > Tap into the largest installed PC base & get more eyes on your game by > optimizing for Intel(R) Graphics Technology. Get started today with the > Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. > http://p.sf.net/sfu/intelisp-dev2dev > _______________________________________________ > Gwt-openlayers-users mailing list > Gwt...@li... > https://lists.sourceforge.net/lists/listinfo/gwt-openlayers-users > > |