Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

We are building a spatial application targeted to laypeople which will involve viewing and editing vector geodata (currently just points, but linestrings and polygons in the future) with a raster underlay. We'll deploy both web and mobile (iPhone now, Android and perhaps others later) versions. The server is a custom app we are writing, and there are no ESRI products on the server side.

My question, therefore, is: How do we choose which client-side mapping toolkit to use? I'm aware of the following options, are there others?

  • Google Maps API or similar (Yahoo, MapQuest, etc.)
  • OpenLayers (does it work on mobile browsers?)
  • ESRI's web/mobile APIs

We are particularly interested in the pros/cons of the ESRI APIs under this scenario. Our company does have some kind of relationship with ESRI, though I know nothing about the details (and our group currently has no involvement with ESRI or ESRI products).

share|improve this question
2  
I'd check and see if "some kind of relationship with ESRI" means you already have a license for ArcGIS server. I think that would be a factor in choosing a toolkit. –  Kirk Kuykendall Mar 31 '11 at 15:45
    
@Kirk, that's a good point. In our case, we won't be using Arc server stuff because our server app works nicely on top of a standard OGC spatial database, not to mention our total lack of expertise in Arc. :) –  Reid Mar 31 '11 at 17:04
    
What sort of programming do you do in your shop (java, .NET, python, etc.) ? –  Kirk Kuykendall Mar 31 '11 at 17:07
    
I'm with Kirk, figure out what kind of relationship you have with ESRI, then I'd check with your team to see what they're using. You may be able to use something like geoserver or openlayers to build and host a WMS, but beyond that I'd imagine that how you get that fed to the client mobile device is dependent on what you want to code in: developer.android.com/index.html I'm investigating droid currently, but I work against ArcServer and will most likely need to use the Javascript API for portability sake. –  Luke Mar 31 '11 at 17:18
    
@Kirk, we have Ruby on Rails on the back end (this is already in progress), and we also have lots of web dev expertise (JavaScript and all that) as well as some iOS expertise. Right now on the front end we have a prototype using (I believe) mapping stuff that comes with Xcode. It appears to be Google Maps-based. –  Reid Mar 31 '11 at 18:41
add comment

2 Answers

The Esri APIs are definitely geared toward working with ArcGIS server but it is technically possible to develop your own server side solution that would work with the client APIs for Esri's REST API. Take a look at the GeoServices REST spec. For editing points, you would implement feature service which is section 9 in the spec.

Your raster layer(I'm assuming it is tiled) could be implemented as a custom layer. There are a few JavaScript samples out there showing how to do this:

share|improve this answer
add comment
  • For information, Openlayers has been updated recently to work with mobile devices. You can test it by yourself browsing examples ;
  • Tile5 is a young project based on top of html5. Maybe not yet ready for production because of compatibility issues but appears to be really promising and it is developed for mobile devices. But not a good solution for older browsers.

How do we choose which client-side mapping toolkit to use?

Depends of many criterion : The money you can put on development, your opinion regarding free software, your target, the robustness of the solution you are looking for, the support you want, browser compatibility and so on ....

(Sorry, I don't know about ESRI webmapping products)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.