views:

87

answers:

6

I'm building a webapp that will need to provide some real-time tracking information overlayed on to some maps. My requirements are fairly simple:

  • I need to take a series of lat/long co-ordinates, and overlay simple markers at those positions with a small bit of associated textual information (ie, just a label and/or tooltip at the marker)
  • allow the user to zoom/pan
  • use open client side technologies (eg, AJAX, not flash/active-x)
  • a client-side control to allow them to configure an auto-refresh interval would be nice (but not necessary)
  • be deployable in a standard servlet container like Tomcat
  • by deployable in a private network (ie, can't go to a web service on the internet to fetch data)
  • provides basic map data (I do not have my own)
  • commercial or open source is fine

This question suggests GeoServer + OpenLayers, but required an open-source solution (I do not). A casual glance at those sites seems like it would be a reasonable amount of effort to get that going, and it's not clear to me that GeoServer actually comes with map data. This is key, I do not have my own map data. I want a library that provides basic map data. I don't need detailed street information, just basic geography, political boundaries and major cities is enough.

I found Dundas Maps which looks like it would serve my needs fine, however, it is for ASP.NET so it is not an option.

+1  A: 

I have worked on a inhouse project a work that provides almost all the features in ur bullets, but we use GeoExt for the UI and geoserver as our server. GeoExt provides a very rich UI using Ext and OpenLayers. Also some of our data has been take from Open street Maps.

Another option is Mapguide, an open source GIS platform.

ajayr
+2  A: 

Geoserver doesn't come with map data, but then no map server does. Depending on which area of the world you need data for, you can check e.g. Openstreetmap, Natural Earth Data, and local authorities. You'll have to serve the data (= background map) from your own servers to meet your "by deployable in a private network" requirement.

Setting up Geoserver with an OpenLayers front-end is pretty straight-forward. Labeling and customizing markers is simlple (Geoserver uses standard SLDs). The "preview" pages Geoserver provides by default are a good basis for development of your website and Tomcat is the recommended container for Geoserver afaik.

underdark
I hadn't run across Natural Earth Data yet, it looks very nice, and should suit my needs. I just realized Geoserver is GPL, so I won't be able to use that.
wolfcastle
Why, are you planning to hack it?
underdark
No, but I will be deploying it to customers as part of a larger system. Under the GPL, this means that I have to release the source code of my system also under the GPL which conflicts with our business contracts. Basically its a corporate decision that is out of my hands.
wolfcastle
A: 

+1 for OpenLayers & GeoServer. There are other viable open source options.

If you are willing to spend money, do at least consider the commercial GIS solutions like ArcGIS Server. They are very successful, and it's not just due to marketing muscle. The deal is you pay them money, sometimes serious money, but you save developer time - which of course is also money.

MarkJ
A: 

You should have a look at Geomajas (http://geomajas.org/). This is a solution which is all-Java and integrates both front-end (GWT) and back-end (using amongst others Spring, Geotools, JTS,...). It is open source (AGPL), but other licenses are also available (from Geosparc).

I think it servers all your needs (though for map data, you would indeed need OpenStreetMap, Natural Earth or similar).

I know some people have worked on something similar to what you mention. There was even a talk at foss4g about display of a soccer match using Geomajas (the presentation should be online, but the foss4g site seems to be down at the moment).

Joachim Van der Auwera
A: 

Try http://www.opengts.com/ an opensource project for free GPS tracking built on Java

Satya
A: 

Without knowing exactly what you are doing on the server side, I think you might find GeoServer usable. I have recently read through the licensing of GeoServer and my understanding is that you can use it as a service with unreleased software without issue which is how the software is intended. If you alter the GeoServer code and redistribute, you would have to contribute your changes.

GeoServer used in the case you are describing is different from a scenario like ExtJS where it is a part of the application. Have a look at the licensing again and look for scenarios that explain the interpretation to set your mind at ease. The company I work for uses open source GIS software quite a bit and this is how we interpret it. BTW I work with one of the contributors.

Walter Deane