8

I have been tasked with building a disconnected, web-based mapping application. It must run in a browser, but it will run on a disconnected Windows based laptop. It needs to be able to do simple map displays as well as display of objects on map and historical displays of the route of an object. Does anyone have any suggestions about a particular software solution? I am guessing that I will have to install some sort of mapping server software that has all of the mapping information and then also build a web-based client that accesses the local mapping server software. Does that make sense?

Here are more details about the rough system requirements.

  • The finished application will be web-based (runs in a browser)
  • The entire system will be disconnected from the internet. So it can't rely on any internet-based mapping system like Google Maps.
  • The main screen will display a map of the earth. It needs to show basic country boundaries but there is no requirement for any other information.
  • The user should be able to zoom in and out. There will be some zoom limits although I don't know exactly what they are. The application is displaying flight paths for airplanes so hopefully that gives you some idea of the zoom needs.
  • The default view will keep the icon for the airplane centered and the map will move beneath.
  • The user should also be able to pan the map in any direction and then return to having the airplane icon centered.
  • The system will need to be able to dynamically load some overlay maps that display some polygon type shapes.
  • The main screen will also have text areas that display other types of information such as current airplane location, etc.
  • Ideally the mapping software would be easily integrated using C# and ASP.NET

These are the basic rough requirements. I have done a LOT of searching on the web for a solution. Most of the mapping software applications that I have found seem to be overkill. They are complex GIS systems that cost lots of money. I just need a simple mapping application like Google Maps that works offline and allows for the integration functions that I have outlined above. Does anyone have any recommendations?

(I mistakenly started a new question that is basically the same thing as this. Here is a link to the second question: Looking for web-based mapping software recommendation)

  • 1
    How big of a geographic area are we talking about here? – MLowry Jun 14 '12 at 18:29
  • 1
    "must run in a browser" ie on localhost so must be an offline application that can sometimes be connected to update? – Mapperz Jun 14 '12 at 18:32
  • @MLowry - not really sure. At the moment the requirements are quite vague. I am in the exploratory phase. My guess is that the geographic area for any one map may be relatively small. But that potentially any one map could be from any part of the world. – Corey Burnett Jun 14 '12 at 18:35
  • @Mapperz - yes this will run on localhost and could potentially be connected periodically update. – Corey Burnett Jun 14 '12 at 18:36
  • 2
    An HTML5-specific/related question: http://gis.stackexchange.com/questions/24801/how-do-i-use-html5-storage-to-cache-mapservice-data – Jay Cummins Jun 14 '12 at 18:37
  • This seems like a lot of work for none of the benefits of web mapping? Building an application on a local webserver that is only occasionally connected seems to be overly complicated when you could just use a desktop GIS. – Kelso Jun 15 '12 at 02:11
  • If you can find an image that works for your base map (what you said about earth + country boundaries) then you can just do it all client-side with OpenLayers. Server side (C# or php or ...) is totally up to you at that point to connect to your polygon db. – Vadim Jun 29 '12 at 17:17
  • simple mapping application like Google Maps that works offline and allows for the integration functions - Google Maps on Android can be OFFLINE now - http://google-latlong.blogspot.co.uk/2012/06/go-offline-with-google-maps-for-android.html – Mapperz Jun 29 '12 at 17:21
  • @Vadim - so you are saying that OpenLayers allows you to use a custom, local base map image? I looked through the documentation and I could not find how that worked. It only seemed to allow you to switch online map providers. – Corey Burnett Jun 29 '12 at 17:51
  • @GetSpatial - oh sorry about that. I didn't realize I could do that. What can I do to fix it now? Should I go back and edit the previous post? – Corey Burnett Jun 29 '12 at 17:53
  • @Corey - I suggest you update your 1st question. But I don't want to leave you hanging either. Are you going to run a web server (e.g. IIS)? if so, then easy peasy OpenLayers can access an image file on localhost or a server on your LAN. If you want it w/o a server, then you'll have to get around some browser permissions to access disk. Some browsers are more challenging than others. – Vadim Jun 29 '12 at 17:54
  • @Vadim - yes we will be running IIS locally. – Corey Burnett Jun 29 '12 at 17:55
  • @Corey - You can hit the "edit" link, it's just under your original question, under the "web-mapping" tag. And you can re-write the whole question, or just do an edit at the bottom – Vadim Jun 29 '12 at 17:55
  • Ok, so if you don't want heavy ArcGIS or PostGIS (fine solutions on their own, but if you don't want them) then just use openlayers library, and set your base map (see OL documentation) to be an image that represents your world. Only downside there's so much you can zoom in before the image looks like crap, right? :) It's just an image, not a tile server. – Vadim Jun 29 '12 at 17:56
  • 1

4 Answers4

3

Would suggest Maps on a Stick

http://developmentseed.org/blog/2010/oct/02/maps-stick-version-2-released/

No more complex deployment process. Users can easily copy single-file SQLite tilesets to Maps on a Stick for viewing.

Adding online KML is as simple as inputting the address of the KML file and clicking ‘Add.’

Uploading KML consists of clicking ‘Upload KML’ and uploading it.

You can generate your own tiles with https://github.com/developmentseed/gdal2mb

See for Examples of the tools/maps http://afghanistanelectiondata.org/open

Mapperz
  • 49,701
  • 9
  • 73
  • 132
3

Here's the answer we chatted about.

OpenLayers + IIS (that you are running locally or on LAN) + Image as your base map.

And you can have different base maps at different zoom levels (all of them can be images) and that's answered in this question:

Switching baselayers as user zooms in to map in OpenLayers?

Vadim
  • 3,971
  • 2
  • 29
  • 42
2

Re "You'll need a way to manage your maps locally. For this you'll need a map server ..."

No, not at all - other than the web server. We're using the 'URL/{z}/{x}/{y}.png' construct in our free, Open Source Computer-Aided-Dispatch application with a local tileset store (or as a dynamically-selected option, to any OSM repository).

Ours is in PHP, and I expect an ASP implementation to be quite similar since the tile interface is done by the JS library in user-land. Really sweet!

Our current implementation is GMaps-based, but we're moving rapidly to OSM, with one of the libraries discussed here. (See at www.ticketscad.org)

1

You'll need a way to manage your maps locally. For this you'll need a map server and database/data store. You can easily set this up using GeoServer and PostGIS. In place of PostGIS, you can use SQL Server, Oracle, etc.

You can download basemaps from OSM. You can download cleaned up shape files from Cloudmade, for example.

To view your maps, you can leverage WMS and OpenLayers. Editing of the maps from a browser can be achieved by leveraging the WFS protocol. For building your presentation/view layer, you can combine OpenLayers with ASP.NET.

This is a solution which you can run entirely in your LAN, without external Internet connection. You may also want to check out other JavaScript frameworks for maps presentation like GeoExt, which is at a higher level of abstraction.

okello
  • 1,780
  • 1
  • 25
  • 45