I work on an Esri heavy team, i'm looking for a mapping engine that will give me flexibility to build on top of and leverage only the pieces I need and or add more as the app grows. I've been using ESRI's API to great success for my indiviual code but leveraging their codebase into a reusable solution grows too large.

We have ArcGIS Server 10.1 and create featureserver and mapserver services. Along with those I will consume data thats created from various tabular locations and sent to my front-end via JSON/Ajax.

I've started on Leaflet, and have began testing on esri-leaflet to some success, dynamic layers are drawing slowly, but we are currently upgrading to 10.1 so that may wash out.

Goal: find a lightweight javascript based mapping engine that will handle ArcGIS feature&mapserver services. Along with the ArcGIS services the engine needs to handle JSON data. Geocoding with the service of my choice would also be great(bing, google, esri, or internally created)


1 Answer 1


Looking at your update, I feel that the only two solutions that you have are ESRI's JSAPI and esri-leaflet. Some might argue that OpenLayers would also be a possible solution, but in my experience, combining OpenLayers and ArcGIS services are a pain.

If you go with ESRI's JSAPI, you need to understand that you are working with dojo. Once you understand that, and learn to work with Dojo's idiosyncrasies, it is easy enough. You might feel that the library is large, but you can make custom builds of Dojo and the Library, using only those classes that you need.

I'm quite impressed with esri-leaflet. It is basically a plugin for Leaflet, which gives you classes for directly working with ArcGIS Server's services. An Advantage of working with Leaflet, is that there are a lot of plugins that exist, which can help you in your project. There are several plugins for geocoding, as well as Ajax and GeoJSON.

What you need to remember with Leaflet, is that the library does not come with much of UI. For example, if you need to make dialog boxes, datagrids etc, then you will need some other library for that. This is good thing for many people, but it could be a stumbling block for others.

Finally, one more thing that you need to keep in mind, is that most mapping libraries expect GeoJSON while ArcGIS Server outputs data in custom JSON format. You need to take care of this if you have some custom solution. (The ESRI JSAPI and esri-Leaflet take care of this for you).

  • just so I'm clear, the esri/dojo solution appears to be bundled together, which is why i'm searching around. I would like to wrap my code together with the library of choice (leaflet seems very solid) and deploy as a single sheet. The esri/dojo solution has been forcing me to have 1 minimum separate sheet added for my JS addition to the project. are you saying that the esri/dojo build can fully levearage AMD via dojo?
    – atlMapper
    Sep 16, 2013 at 12:15
  • currently there is no way to create your own customized packages, (if that's what you mean by 'fully leverage AMD) but the Esri JS API is definitely already AMD compliant. Sep 17, 2013 at 16:41
  • @JohnGravois why do you say that we can't create custom packages? Custom deployment packages is one of the few redeeming features of Dojo . Sep 17, 2013 at 17:26
  • i'm only saying that no official supported technique has been introduced to help create a custom deployment package of Esri JS API and its bundled Dojo modules. that being said, this article shows that it is 'possible' geospatialscott.blogspot.com/2013/09/… Sep 17, 2013 at 18:00
  • a few months ago we introduced something to simplify the generation of custom Dojo/Esri JS API builds: developers.arcgis.com/javascript/jshelp/… Oct 9, 2014 at 17:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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