FW: [Geoserver-users] Viewer with Geoserver

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.

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 Geoserver

Randy 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 the

scale

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 reason

scalehints

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 level

shown

as point symbols. There are about 50000 Quatenary Faults,
gml:MultiLineString elements, which will not render at the US level of

zoom

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 pointing

to

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 geoserver

to

add client capability. I still wonder about injecting event listener
attribution through sld somehow, since listeners could be considered just

a

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 Geoserver

Hi 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 way

to

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 that

includes

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 scripting

language

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 scripting

language

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

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 Geoserver

Randy 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 the

scale

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 reason

scalehints

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 level

shown

as point symbols. There are about 50000 Quatenary Faults,
gml:MultiLineString elements, which will not render at the US level of

zoom

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 pointing

to

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 geoserver

to

add client capability. I still wonder about injecting event listener
attribution through sld somehow, since listeners could be considered just

a

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 Geoserver

Hi 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 way

to

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 that

includes

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 scripting

language

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 scripting

language

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