Hi,
ChrisHomes wrote:
So a scale hint actually should have an effect on the server? I was
thinking that it was just a 'recommendation' for clients, but if they
really wanted to get the rendering, they should be able to request it?
And that if you actually want to _not_ render for a given zoom scale,
then you should just use Min and MaxScaleDenominator. That tells the
server not to render outside a certain range. This would make it so a
client doesn't even have to know about the scale hints... Perhaps in an
ideal world you could also select your min/max scale denominator as well
as your hint through a gui. They could be the same, or they could be
different? If they are present, it might make sense to derive the scale
box from there.
Hmm, I see. I forgot about the sld Min and MaxScaleDenominator which means a
minimum system could just publish administrator defined scale hints by layer
in the getCapabilities request and leave it up to the client to do something
about it if they want. I was concerned about eliminating any prior knowledge
requirement on the client, but just providing the scalehint accessible to
the client through getCapabilities would do the job and that should be an
easy fix. I'll put this into jira
Evidently ESRI WMS actually limits rendering on the server side, at least
that is what happens with USGS Atlas and NOAA ENC. DEMIS DCW also limits
rendering in the OWS. I don't know what their server implementation is.
As far as setting layer scalehints with a gui I would think making a uDig
admin configuration utility would complicate GeoServer.
rkgeorge
-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Chris
Holmes
Sent: Friday, February 24, 2006 11:47 AM
To: Randy George
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: FW: [Geoserver-users] Viewer with Geoserver
Randy George wrote:
Hi,
Chris Holmes wrote:
Could you submit this to the task tracker? See:
http://docs.codehaus.org/display/GEOSDOC/Reporting+Issues for more
information. It would be really helpful if you could suggest first the
minimum needed for this to be useful (like just allow you to fill out
the value yourself), and what more could be done on it. Like could
there be some sort of 'generate' button similar to the bbox of
featureType? Could we derive it from the bounds of the datastore in a
similar way?Scale hints can provide two things:
A. Let the administrator declare scale visibility by layer. This helps
with
problems of overwhelming rendering for inappropriate scale views. In my
experiments it has been a problem and I notice that it is a frustration in
using uDig as well. Without prior knowledge of scale appropriate layers
the
client can get tangled up in very long rendering cycles at best and at
worst
blow up the local client altogether.
B. Let the client know what is appropriate. If the getCapabilities request
returns the associated scale hint assigned to a layer the local client can
do something like grey out the layer that is not in zoom view.Scale hints are scaler so bbox is helpful only in letting you calculate
the
current scale. Autogenerated scalehints are not useful from the overall
bounding box, since the idea is to manipulate visibility at larger scales.
You could work out some way to generate the scale hints from a client by
letting the admin zoom to the desired level and then request the min or
max
scale hint be populated on the server. However, this requires a client
like
uDig be used for administration. I think the easiest approach is just to
add
min and max scale hint textboxes to the config page for a featuretype.
Publish those attributes in the getCapabilities results and then calculate
the zoom scale from furnished BBOX queries which is then compared to the
min/max scale hints. If the current BBOX scale falls within the scale
hints
for the layer it is queried and rendered, otherwise skipped.
So a scale hint actually should have an effect on the server? I was
thinking that it was just a 'recommendation' for clients, but if they
really wanted to get the rendering, they should be able to request it?
And that if you actually want to _not_ render for a given zoom scale,
then you should just use Min and MaxScaleDenominator. That tells the
server not to render outside a certain range. This would make it so a
client doesn't even have to know about the scale hints... Perhaps in an
ideal world you could also select your min/max scale denominator as well
as your hint through a gui. They could be the same, or they could be
different? If they are present, it might make sense to derive the scale
box from there.
Would you mind submitting this as a bug to our tracker?
http://jira.codehaus.org/browse/GEOS If you'd like I'm happy to do it
myself, but if you submit it you'll be automatically notified whenever
there are any comments or progress on the issue.
thanks!
Chris
USGS Atlas uses some scale hints which are implemented in their ESRI OWS.
Note: the ScaleHint element does not use the defined SRS but is calculated
on an estimated pixel size in ground units.
http://ims.cr.usgs.gov/servlet19/com.esri.wms.Esrimap/USGS_EDC_National_Atla
s?Service=WMS&Version=1.1.1&Request=GetCapabilities
- <Layer queryable="1" opaque="0" noSubsets="0">
<Name>ATLAS_DAMS_LARGE_DRAINAGE</Name>
<Title>ATLAS_DAMS_LARGE_DRAINAGE</Title>
<SRS>EPSG:4326</SRS>
<LatLonBoundingBox minx="-162.934219894082" miny="18.0160769664877"
maxx="-66.0146106597344" maxy="68.0675886974449" />
<ScaleHint min="1814.4917218905402" max="33670.98040621619" />
</Layer>
- <Layer queryable="1" opaque="0" noSubsets="0">
<Name>ATLAS_DAMS_150</Name>
<Title>ATLAS_DAMS_150</Title>
<SRS>EPSG:4326</SRS>
<LatLonBoundingBox minx="-122.7628" miny="25.7603799999997"
maxx="-67.7777800000003" maxy="48.7481800000005" />
</Layer>
- <Layer queryable="1" opaque="0" noSubsets="0">
<Name>ATLAS_DAMS_075</Name>
<Title>ATLAS_DAMS_075</Title>
<SRS>EPSG:4326</SRS>
<LatLonBoundingBox minx="-153.10449" miny="18.1013500000008"
maxx="-66.4879500000006" maxy="61.4155800000008" />
<ScaleHint min="1814.4917218905402" max="8230.68409929728" />
</Layer>
- <Layer queryable="1" opaque="0" noSubsets="0">
<Name>ATLAS_DAMS</Name>
<Title>ATLAS_DAMS</Title>
<SRS>EPSG:4326</SRS>
<LatLonBoundingBox minx="-162.934219894082" miny="18.0160769664877"
maxx="-66.0146106597344" maxy="68.0675886974449" />
<ScaleHint min="31.426248379135124" max="1814.4917218905402" />
</Layer>And does one need to be able to add multiple scale hints? Is that even
possible?Also, the advice you give here is great, any chance you could write it
up as a 'use narrative'? Or if you've blogged about it, you can just
give a link to the blog posts. This kind of information is super
helpful, and is great when it lives outside of just the mailing list.
see http://docs.codehaus.org/display/GEOSDOC/Use+Narrative It can be
super informal, just experiences you've had with GeoServer.-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Chris
Holmes
Sent: Friday, February 24, 2006 10:42 AM
To: Randy George
Cc: geoserver-users@lists.sourceforge.net; 'Omar Zevallos'
Subject: Re: [Geoserver-users] Viewer with GeoserverRandy George wrote:
Hi,
Adobe SVG ASV3.03 has problems rendering large datasets. The nice
thing, though, about OWS is that it provides a straightforward seamless
interface to very large data sets (such as your 30000+ polygons). You will
need to limit the number of polygons in small scale views. Here a couple
things you could try:1. At small scales show points (circles) rather than polygons. I assume
the
polygons are house symbols. Even using points your 30000+ points could
overload the client rendering. This would mean adding another
table/datastore calculating a centroid for each existing polygon.2. Do not allow polygons or points to render until zoomed in to a
reasonable
level. Unfortunately GeoServer doesn't let you set scale hints yet:
<ScaleHint min="31.426248379135124" max="33670.98040621619" />So you will have to provide scale visibility on your own server
side. I am hoping that future versions of geoserver will implement thescale
hints. The problem is what to show at small scales.
Could you submit this to the task tracker? See:
http://docs.codehaus.org/display/GEOSDOC/Reporting+Issues for more
information. It would be really helpful if you could suggest first the
minimum needed for this to be useful (like just allow you to fill out
the value yourself), and what more could be done on it. Like could
there be some sort of 'generate' button similar to the bbox of
featureType? Could we derive it from the bounds of the datastore in a
similar way?And does one need to be able to add multiple scale hints? Is that even
possible?Also, the advice you give here is great, any chance you could write it
up as a 'use narrative'? Or if you've blogged about it, you can just
give a link to the blog posts. This kind of information is super
helpful, and is great when it lives outside of just the mailing list.
see http://docs.codehaus.org/display/GEOSDOC/Use+Narrative It can be
super informal, just experiences you've had with GeoServer.best regards,
Chris
3. Combine a WMS image/jpeg with WMS image/svg+xml. In other words use the
more or less static WMS jpeg, png etc until zoomed to a certain level and
then switch to image/svg+xml with the necessary event listeners to make it
useful on the client. Note: with very large datastores the time to render
server side is also prohibitive at small scales. (another reasonscalehints
would be helpful)
Since you are using Adobe ASV here is a sample svg interface you might be
interested in seeing:
http://www.web-demographics.com/OWSGeothermal
There are about 6000 Geothermal SMUWells at the Western US zoom levelshown
as point symbols. There are about 50000 Quatenary Faults,
gml:MultiLineString elements, which will not render at the US level ofzoom
without blowing up the ASV rendering on a 512Mb client.
This experimental site uses client side svg for both WMS and WFS. For WMS
the image is embedded as an svg image element with an xlink:href pointingto
the WMS like this:
<image id="img" x="-125.0" y="-53.0" width="60.0" height="30.0"
xlink:href="http://onearth.jpl.nasa.gov/wms.cgi?styles=&service=WMS&ServiceN
ame=WMS&request=GetMap&layers=BMNG&format=image/jpeg&srs=EPSG:4326&bbox=-125
,23,-65,53&width=1000&height=500">
</image>This allows local Geoserver WFS site layers to overlay selected WMS.
The handy thing about svg (or any declarative xml graphic spec) are
all of the things you can do with event listeners on the client, which is
why the svg export from geoserver WMS is fairly useless(static), as you
pointed out.
I found using the WFS export and then decorating with custom event
capability to be a more flexible approach. You could do the same with the
svg. In both cases you need server side control in addition to geoserverto
add client capability. I still wonder about injecting event listener
attribution through sld somehow, since listeners could be considered justa
form of rendering like fill or stroke.
rkgeorge
-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Omar
Zevallos
Sent: Thursday, February 23, 2006 10:41 PM
Cc: geoserver-users@lists.sourceforge.net
Subject: [Geoserver-users] Viewer with GeoserverHi there, months ago, I have been looking for a viewer (for Browser) to
show
cadastral data through geoserver. I have tried MapBuilder and Adobe SVG
Viewer.
With MapBuilder I did not continue working because I did not find the wayto
work with events (onclick, mouseover, etc), and I´m working with SVG now,
but I have troubles with overload data, since, I have a layer thatincludes
lotes (polygons that draw a house in the map) of all my region (about
30000
rows). I do not know like handling so many data in the browser...
I suppose that one of you has had the same problems, I wish a suggestion
about this...
Thanks in advance-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scriptinglanguage
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=k&kid0944&bid$1720&dat1642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scriptinglanguage
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0944&bid$1720&dat1642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users
--
Chris Holmes
The Open Planning Project
thoughts at: http://cholmes.wordpress.com