[Geoserver-devel] Vector Superoverlays and Regionating KML

I'm continuing to look into the potential SDE superoverlay bug that I reported earlier, however I get similar behaviour with a plain-old shapefile data source - no exception (as there is in the SDE case), but also no data displayed. I think I'm doing something pretty basic, it is all the default behaviour. I add a polygon shapefile (the countries of the world) as a feature type and try to access it using the KML reflector, using Geoserver 1.7.x from SVN. The default mode is superoverlay, the default superoverlay mode is auto, so I should get a vector superoverlay displayed in GE. I actually see nothing shown in GE, though it gives me a green light for successfully loading the file and there is a deep hierarchy of 00/01/10/11 folders. If I specify superoverlay_mode=raster, I get a tiled coverage of the countries displayed.

The featuretype is using the default "best guess" regionating strategy. Do I need to do additional configuration in order to get it to properly display? I admit that for displaying the countries that a vector superoverlay is probably not the best option but I'm just trying to figure out what I should expect from the superoverlay function so that I can better figure out what is going wrong with the SDE superoverlay.

Thanks,
Chris

Chris Hodgson ha scritto:

I'm continuing to look into the potential SDE superoverlay bug that I reported earlier, however I get similar behaviour with a plain-old shapefile data source - no exception (as there is in the SDE case), but also no data displayed. I think I'm doing something pretty basic, it is all the default behaviour. I add a polygon shapefile (the countries of the world) as a feature type and try to access it using the KML reflector, using Geoserver 1.7.x from SVN. The default mode is superoverlay, the default superoverlay mode is auto, so I should get a vector superoverlay displayed in GE. I actually see nothing shown in GE, though it gives me a green light for successfully loading the file and there is a deep hierarchy of 00/01/10/11 folders. If I specify superoverlay_mode=raster, I get a tiled coverage of the countries displayed.

The featuretype is using the default "best guess" regionating strategy. Do I need to do additional configuration in order to get it to properly display? I admit that for displaying the countries that a vector superoverlay is probably not the best option but I'm just trying to figure out what I should expect from the superoverlay function so that I can better figure out what is going wrong with the SDE superoverlay.

A bug related to superoverlay management has been found by Arne
while checking the 1.7.4 release artifact and was fixed in 1.7.4
tag:
http://jira.codehaus.org/browse/GEOS-2942

I just forward ported the fixes to 1.7.x and trunk.
Can you check if that solves the issue for you?

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Andrea Aime wrote:

A bug related to superoverlay management has been found by Arne
while checking the 1.7.4 release artifact and was fixed in 1.7.4
tag:
http://jira.codehaus.org/browse/GEOS-2942

I just forward ported the fixes to 1.7.x and trunk.
Can you check if that solves the issue for you?

Cheers
Andrea

After updating I am unable to run maven, I get an error about not being able to find org.geoserver:maven:pom:1.7.5-SNAPSHOT... however I can build in my pre-existing eclipse environment, but I still have the same problem. My issue doesn't seem to be the same one, as I don't get any exceptions thrown (unless the data source is SDE) - I just can't see my data in GE.

Any clue what is wrong with my maven build? Any chance something is wrong with a POM file somewhere in 1.7.x?

Regardless, I suspect this fix wasn't for my problem.

Chris

Chris Hodgson wrote:

Andrea Aime wrote:
  

A bug related to superoverlay management has been found by Arne
while checking the 1.7.4 release artifact and was fixed in 1.7.4
tag:
http://jira.codehaus.org/browse/GEOS-2942

I just forward ported the fixes to 1.7.x and trunk.
Can you check if that solves the issue for you?

Cheers
Andrea

After updating I am unable to run maven, I get an error about not being able to find org.geoserver:maven:pom:1.7.5-SNAPSHOT... however I can build in my pre-existing eclipse environment, but I still have the same problem. My issue doesn't seem to be the same one, as I don't get any exceptions thrown (unless the data source is SDE) - I just can't see my data in GE.

Any clue what is wrong with my maven build? Any chance something is wrong with a POM file somewhere in 1.7.x?

Regardless, I suspect this fix wasn't for my problem.

Chris
  
It's possible, but the switch worked both on my machine and for hudson. I just ran sed on the entire tree replacing 1.7.3 and 1.7.3-SNAPSHOT with 1.7.5-SNAPSHOT. (1.7.x had not been updated to 1.7.4-SNAPSHOT after the 1.7.3 release, and there were some reference straight to 1.7.3).

Could you give me the entire Maven traceback (assuming you're doing mvn clean install ?), so I can see what module triggers it?

Temporary workaround for your superoverlays; If you can live with caching, try http://localhost:8080/geoserver/gwc/service/kml/<layername>\.png\.kml (png8.kml or jpeg.kml)

-Arne

--
Arne Kepp
OpenGeo - http://opengeo.org
Expert service straight from the developers

Arne Kepp wrote:

Temporary workaround for your superoverlays; If you can live with caching, try http://localhost:8080/geoserver/gwc/service/kml/<layername>\.png\.kml (png8.kml or jpeg.kml

Sorry, was not thinking straight. Obviously I implied raster, and .kml.kml is not going to be any different from accessing GS directly.

A real suggestion: Be sure to clear the geosearch directory in your geoserver data dir before testing the fix (or while debugging in general). A good starting point for triaging would probably be populateDB() in CachedHierarchyRegionatingStrategy.java

--
Arne Kepp
OpenGeo - http://opengeo.org
Expert service straight from the developers

Chris Hodgson ha scritto:

Andrea Aime wrote:

A bug related to superoverlay management has been found by Arne
while checking the 1.7.4 release artifact and was fixed in 1.7.4
tag:
http://jira.codehaus.org/browse/GEOS-2942

I just forward ported the fixes to 1.7.x and trunk.
Can you check if that solves the issue for you?

Cheers
Andrea

After updating I am unable to run maven, I get an error about not being able to find org.geoserver:maven:pom:1.7.5-SNAPSHOT... however I can build in my pre-existing eclipse environment, but I still have the same problem. My issue doesn't seem to be the same one, as I don't get any exceptions thrown (unless the data source is SDE) - I just can't see my data in GE.

I hope you understand that with such (lack of) report I cannot do
anything to help.

Any clue what is wrong with my maven build? Any chance something is wrong with a POM file somewhere in 1.7.x?

No, there's nothing wrong, besides Maven not being able to realize
that the plugins it needs are in the same build it's trying to build.
Maven 2.1.0 would actually throw a circular dependency exception for
that.
We have to take our custom maven plugins and move them under a separate
source tree, and under a separate versioning scheme I guess, and
make sure they are always deployed on some repository.

In the meantime, build our maven plugins before building GeoServer:
cd maven
mvn clean install
cd ..
mvn clean install

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Okay, sorry for my poor problem report earlier, I figured out it was a botched svn update and with a proper update my maven is happy again and I'm running the latest 1.7.5-snapshot.

My problem with the vector superoverlay is still present in the new version. I'm wondering if it is a configuration issue, as the other demo polygon layers (states, giant_polygon, etc) all work correctly (clicking on the kml link), while the new countries shapefile layer I added does not. I have:

regionating attribute: none
regionating strategy: best_guess
KML feature limit: 10

These are all in line with other working layers. Are there other configuration parameters that could effectively disable vector superoverlays? The layer outputs the expected vector kml with mode=refresh.

Thanks,
Chris

Chris Hodgson ha scritto:

Okay, sorry for my poor problem report earlier, I figured out it was a botched svn update and with a proper update my maven is happy again and I'm running the latest 1.7.5-snapshot.

My problem with the vector superoverlay is still present in the new version. I'm wondering if it is a configuration issue, as the other demo polygon layers (states, giant_polygon, etc) all work correctly (clicking on the kml link), while the new countries shapefile layer I added does not. I have:

regionating attribute: none
regionating strategy: best_guess
KML feature limit: 10

Hmmm.... still not very useful report. geoserver.log does not
contain any stack trace? Remember we're not seeing your computer,
we're (still) not clairvoyant, so while reporting a bug you
have to be our eyes.
Some hints on a good bug report here:
http://www.chiark.greenend.org.uk/~sgtatham/bugs.html

These are all in line with other working layers. Are there other configuration parameters that could effectively disable vector superoverlays? The layer outputs the expected vector kml with mode=refresh.

Nope, superoverlay cannot be disabled, but as you noticed, you
can bypass it by setting an explict mode.
Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Actually, I think I've told you everything - perhaps I need to be more clear:

- using geoserver 1.7.x from SVN
- add a new polygonal shapefile data source and featureType (I used a shapfile containing the countries of the world)
- select the "polygon" style
- click to have it automatically generate the extents
- leave everything else default on the configuration
- click on the kml link for the newly created featuretype in the Demo-> Map Preview section
- the layer is added to Google Earth, I see it and it takes some time to load a large hierarchy of 00/01/11/10 folders
- it appears that there are no features in any of the folders (there are too many folders to check them all but I've checked a lot of them several times now), hence nothing is displayed in the viewer
- if I specify superoverlay_mode=raster or hybrid, the raster version loads into GE and displays correctly, but no vectors are displayed
- if I specify mode=refresh, the vectors load properly but they are (as expected) not using the superoverlay hierarchical structure

I wondered how such a simple thing could not work, so I tried the existing polygonal shapefile layers that come pre-configured, and of course they all work as expected. Then I tried to compare the seemingly relevant parameters (regionating strategy, regionating attribute, and kml feature limit) from the working built-in layers with my newly added layer - only the kml feature limit was different and I tried -1, 0, 1, 10, 100, all with the same result.

There are no exceptions output or logged, in fact the only message logged at all at production logging settings is a single line: "class org.vfny.geoserver.global.GeoServerFeatureLocking" which seems to be output anytime I access any layer.

So I thought, why don't I try following my own instructions to verify that this problem is as easy to replicate as it was to create in the first place. So I added a polygon grid coverage of the province of BC, and it actually works fine. So now I just removed my original (non-working) featureType and data source, and re-added it, and it works - the superoverlay kml displays in GE. Determined to figure out what caused the original problem, I mess around with various parameters until I figure out how to "break" it again. I have determined that if I give the layer the alias "country", it fails to display, but if I name it something else ("foobar"), it works fine. "country" happens to be the same name that I gave the shapefile datastore, but I tried giving another layer the same alias as its datastore name and this doesn't cause the failure.

I find this impossible to believe, but I've tried a dozen times switching back and forth between "country" and "foobar", "blarg", etc, and when it has the alias "country" it doesn't work. Google loads the layer "successfully" - green light - no exceptions - just the layer seems to be empty and nothing is displayed - only when the layer has the alias "country".

I'm sure I sound completely irrational at this point but does anyone have any idea why this might be happening? Obviously I have already figured out a work-around, but the whole point of the exercise was to ensure that I could make a vector superoverlay work, so that I had some basis for figuring out why my SDE-sourced vector superoverlay isn't working. I'm going to do some more digging into the SDE problem and see if I can't come back with more detail than my earlier report.

Thanks,
Chris

Andrea Aime wrote:

Chris Hodgson ha scritto:

Okay, sorry for my poor problem report earlier, I figured out it was a botched svn update and with a proper update my maven is happy again and I'm running the latest 1.7.5-snapshot.

My problem with the vector superoverlay is still present in the new version. I'm wondering if it is a configuration issue, as the other demo polygon layers (states, giant_polygon, etc) all work correctly (clicking on the kml link), while the new countries shapefile layer I added does not. I have:

regionating attribute: none
regionating strategy: best_guess
KML feature limit: 10

Hmmm.... still not very useful report. geoserver.log does not
contain any stack trace? Remember we're not seeing your computer,
we're (still) not clairvoyant, so while reporting a bug you
have to be our eyes.
Some hints on a good bug report here:
http://www.chiark.greenend.org.uk/~sgtatham/bugs.html

These are all in line with other working layers. Are there other configuration parameters that could effectively disable vector superoverlays? The layer outputs the expected vector kml with mode=refresh.

Nope, superoverlay cannot be disabled, but as you noticed, you
can bypass it by setting an explict mode.
Cheers
Andrea