[Geoserver-users] newbie questions

So I’m new at most of this mapping stuff. I’ve been playing around with a number of free GIS tools, and gone through a bit of their documentation and tutorials (MapServer, GeoServer, MapBuilder, ka-map, TimeMap, OpenMap…). With all of these I’ve gotten to the point where I can put an interactive map on a webpage. But I haven’t been able to figure out the next step.

The goals of my team’s project right now are:

  1. We need a webpage with a map of the world (for now, I think we’ll get the world map from some public WMS)

  2. It needs to be very interactive (thus my interest in MapBuilder and ka-map)

  3. We need to take our own data (which could be in any format) and put it on the map. Right now, this will be in the form of ellipses drawn at certain coordinates. The ellipses will need to be to scale (eg. if it has a major axis of 30 miles and a minor axis of 10 miles, we will need to draw it that size on the map). Putting icons on the map will probably be important later on.

  4. We will need to be able to filter what data is shown on the map (or perhaps highlight certain objects). The filter could be “all data in this bounding box” or “all objects that have property X”.

  5. We need to be able to click on objects in the map and have information about them show up in another part of the webpage, or even have the selection registered on the server to affect other programs.

As I said, I can put a map in a webpage. I think the next step is to take our ellipse data and show it on the map. This is what I’ve been searching and searching for, and I can’t seem to find the right documentation to get me started. I’m guessing that I’ll need to use something like MapServer, somehow tell it the coordinates of ellipses or groups of line segments, and let it create images for my ellipse layer. Is that right? Can anyone get me started and point me to some documentation that will get me there?

For number 4, filtering, I’m thinking that I would have to apply the filter to some data set of ours (maybe set a visible/highlighted flag for each entry in a database), then have my map server rebuild the layer and refresh the client.

For number 5, selection, my guess is that I need a WMS to take the click and do something like a GetFeature request. From there, I’m not sure how the data gets where it needs to go.

Again, any documentation you could point me to for these types of things would be great. If there are any other map tools that you think would fit, let me know. We would really like to use google’s maps API, but I think it’s against their terms of use to put it in a proprietary product or keep it on a private network.

I know that was a lot, but I appreciate any help you can offer. Thanks.

Tim

Stack, Timothy G. wrote:

So I'm new at most of this mapping stuff. I've been playing around with a
number of free GIS tools, and gone through a bit of their documentation and
tutorials (MapServer, GeoServer, MapBuilder, ka-map, TimeMap, OpenMap...).
With all of these I've gotten to the point where I can put an interactive
map on a webpage. But I haven't been able to figure out the next step.

The goals of my team's project right now are:

1) We need a webpage with a map of the world (for now, I think we'll get the
world map from some public WMS)

2) It needs to be very interactive (thus my interest in MapBuilder and
ka-map)

3) We need to take our own data (which could be in any format) and put it on
the map. Right now, this will be in the form of ellipses drawn at certain
coordinates. The ellipses will need to be to scale (eg. if it has a major
axis of 30 miles and a minor axis of 10 miles, we will need to draw it that
size on the map). Putting icons on the map will probably be important later
on.

4) We will need to be able to filter what data is shown on the map (or
perhaps highlight certain objects). The filter could be "all data in this
bounding box" or "all objects that have property X".

5) We need to be able to click on objects in the map and have information
about them show up in another part of the webpage, or even have the
selection registered on the server to affect other programs.

As I said, I can put a map in a webpage. I think the next step is to take
our ellipse data and show it on the map. This is what I've been searching
and searching for, and I can't seem to find the right documentation to get
me started. I'm guessing that I'll need to use something like MapServer,
somehow tell it the coordinates of ellipses or groups of line segments, and
let it create images for my ellipse layer. Is that right? Can anyone get me
started and point me to some documentation that will get me there?

Well, I think the step you may be missing is putting your data in a spatial database. What format is the data currently stored in? You also can use shapefiles, but there are nice open source spatial databases like PostGIS (spatial extensions to Postgresql).

There is lots of documentation on connecting GeoServer (or MapServer) to something like PostGIS. So the main thing you need to do is convert your data format to something that can be stored in a format GeoServer can understand. This shows how to connect to PostGIS: http://docs.codehaus.org/display/GEOSDOC/PostGIS+DataStore Then you configure the FeatureType: http://docs.codehaus.org/display/GEOSDOC/FeatureType+Config

And you set up the style to draw it in with SLD: http://docs.codehaus.org/display/GEOSDOC/Style+Config and http://docs.codehaus.org/display/GEOSDOC/SLD+Intro+Tutorial

This then becomes a layer in WMS, which you then configure mapbuilder or ka-map to connect to.

For number 4, filtering, I'm thinking that I would have to apply the filter
to some data set of ours (maybe set a visible/highlighted flag for each
entry in a database), then have my map server rebuild the layer and refresh
the client.

You can do that with a Filter as part of your SLD. The SLD specification and Filter specifications have details on this. Filter (http://portal.opengeospatial.org/files/?artifact_id=8340) makes the filter against your data (bbox or against a property). SLD (https://portal.opengeospatial.org/files/?artifact_id=1188) specifies the rendering, and can embed a filter in it (color things differently if the filter is there, display if a filter is there, use max scales of map to render or not) You can configure the filtered layer on the server side. Alessio's played with this stuff a good bit with mapbuilder: http://afabiani.wordpress.com/2006/04/19/a-light-ogc-web-client/ You can play with it at: http://geos2.nurc.nato.int/mapbuilder/apps/solmar/index2.html

For number 5, selection, my guess is that I need a WMS to take the click and
do something like a GetFeature request. From there, I'm not sure how the
data gets where it needs to go.

MapBuilder and ka-map I think do this for you. Though it's more that the client takes the click, and then issues either a WMS GetFeatureInfo or a WFS GetFeature request. WFS is preferred, it was more built for such things. I know mapbuilder has built in stuff to do this.

Again, any documentation you could point me to for these types of things
would be great. If there are any other map tools that you think would fit,
let me know. We would really like to use google's maps API, but I think it's
against their terms of use to put it in a proprietary product or keep it on
a private network.

No, you've found most of the good ones. It's a bit of a learning curve, but there's a ton of power there.

I think you may be able to use their api in a proprietary product if you contact them (and pay them). Microsoft and Yahoo definitely have the ability for commercial agreements. There's also placebase: http://www.placebase.com/index.html Which build a google maps look alike on MapServer I believe. But they'll all cost you money. I'd personally recommend the open source route, and keep the investment in expertise instead of just paying someone else _and_ having to gain expertise in their system. But I'm a bit biased :wink:

best regards,

Chris

I know that was a lot, but I appreciate any help you can offer. Thanks.

Tim

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org