Deep questions about ArcGIS JS

1073
5
02-27-2014 12:05 PM
MatthewWeyland
New Contributor
I am wondering what the avenue of communication is to speak directly with someone at ArcGIS for information on the JS tool set.

I have a large RIA application currently leveraging google maps API, TypeScript, and Bootstrap.  However with some of the new features requested by the team, we may be pushing the boundaries of what the current tool can handle, so I'm looking at options for transitioning to different technologies.

Some of the questions I'd like to try to get to the answer for are:
- If given a demo, could someone truly attest to the feasibility of replicating the same functionality in ArcGIS? Not a sales person, but a legit technology person.
- How does ArcGIS play with TypeSript?
- Will there be a DefinitelyTyped dictionary file for ArcGIS be available
- If this is using Dojo as an equivelant to require or MEF.  Will those other downloaded js files also have dictionaries?
- Can I use GeoJSON to build my overlays for a map (mapping DMAs, Postal Codes, Sub-Postal Codes, etc.)
- How does the tool handle multi-polygon goegraphies?
- Can the tool support dynamic changes to the map and its contents, overlays, markers, iconography etc, fill colors, border colors, transparancy, opacity, etc.

Thanks
0 Kudos
5 Replies
JeffPace
MVP Alum
I am not with ESRI, but I will try to answer some questions

If given a demo, could someone truly attest to the feasibility of replicating the same functionality in ArcGIS? Not a sales person, but a legit technology person.

You will not get directly to a developer.  You have to go through sales but they frequently, in demos, can have a developer available.  However if you are looking to have a custom application built (as opposed to writing it yourself) you should be contacting ESRI professional services


- How does ArcGIS play with TypeSript?


I have not seen an intergrations of ArcGIS and TypeScript, but like jQuery, if it is just a framework for javascript it should be fine.



- Will there be a DefinitelyTyped dictionary file for ArcGIS be available


Likely not, but this is not an official answer.


- If this is using Dojo as an equivelant to require or MEF. Will those other downloaded js files also have dictionaries?



Dojo is the framework that the JS API is built with.  The js api is available for download but it is obfuscated.  You cannot access the raw code.


- Can I use GeoJSON to build my overlays for a map (mapping DMAs, Postal Codes, Sub-Postal Codes, etc.)



There is a gitHUB project for using GeoJSON in esri, but it is not currently part of the core functionality
https://github.com/Esri/geojson-utils


- How does the tool handle multi-polygon goegraphies?



If you are using polygons in graphics you can project them on the fly using a geometry service


- Can the tool support dynamic changes to the map and its contents, overlays, markers, iconography etc, fill colors, border colors, transparancy, opacity, etc.


Yes, you can dynamically change DynamicLayers and FeatureLayers.  If a service is tiled the tiles are pre-rendered and are therefore static

Hope this helps
0 Kudos
BenFousek
Occasional Contributor III
Matthew,
I'm not w/ esri. It doesn't seem like the jsapi team answers these kinds of questions. The dev summit is right around the corner and I suspect they're quite busy preparing for it.

Check out http://terraformer.io/ for using geojson with the jsapi. From my favorite esri folks @esriPDX.

I've had real success with the jsapi for about 5+ years now. I don't know your experience with dojo but to effectively use the jsapi you need a certain level of knowledge of dojo. Even if you're just using the map and layers with some other framework. Learning to write custom modules in dojo is a must for any app with custom functionality.

It can be used with Bootstrap. I'd tell you more, but I'm for the first time venturing from pure dojo/jsapi for internal viewer style apps to simpler pretty map apps. I just started with Bootstrap with the jsapi a couple weeks ago, and so far no problems. It's my first experience with jquery as well, and I'm finding it simpler for manipulating the dom in some situations. Requiring and using jquery plugins within my custom dojo modules has worked so far.

The graphics and graphic layers work great. Multi-part geometry no problem. Complex geometries, and lots of graphics on multiple layers are no problem. It's fast without any display issues to speak of. Icons are icons, but I think polylines and polygons look best in the jsapi (others will disagree). Back to icons (picture marker symbols in the jsapi), they don't natively have a 2nd image parameter for a shadow image. The icon image must include it or you need a custom class to extend the graphic to have two symbols or have two points (messy). One of a couple features every other api seems to have but the jsapi does not. Styling the graphics is easy and changing symbols is a snap. The jsapi has methods to easily create/use symbol json. Depending on how your geojson is being created, you could very easily include the esri symbol json with it. The graphics layers (graphic and feature) have a lot of functionality themselves. The great thing about the jsapi is it's designed to work with robust GIS data. While the jsapi is really geared toward working with data from ArcGIS Server, functionalities like unique rendering can be easily used for any data source.  Working with attributes (geojson properties) for data purposes is easy. If you need grids, dgrid is awesome. Dojo has great charting and graphing abilities. And now with http://d3js.org/ the sky is the limit for data visualization. I'm preparing to start a project with a map and interactive temporal graph displaying 725,006 temperature readings over the last 20 years and I'm planning on using the jsapi and d3.

In my opinion, the biggest problem is ordering layers. Because it's vectors, graphics can cover/hide each other and make them inaccessible to interaction, especially with polygons. This is an issue with any web map with vectors I suppose. The api provides methods for moving graphics up/down in the layer and for reordering the layers themselves. I tend to only use graphic/feature layers for displaying temporary graphics for my measure widget as an example, or when I'm editing, which really isn't an issue for you. I do have a map annotation module for drawing, editing, and stylizing graphics which requires a lot of graphic and layer ordering control.

I think the jsapi is great, and in my personal opinion there's no better web mapping api for high functioning apps. Of course the meteoric rise of Leaflet gives developers another viable option. I'm confident saying there's nothing the jsapi and dojo can't do, but that doesn't mean it's the best api for your app.

If you were interested in me looking at a demo and giving an honest opinion on whether I think the jsapi would be a good fit, I'd be more than happy. Otherwise good luck!
Ben
0 Kudos
TyroneLigon
Occasional Contributor
Matthew,

I consider my programming skills to be "an inch deep and a mile wide".  For the last couple of years I've worked on teams with much more knowledgeable staff who determine the application frameworks. That being said, I've been able to integrate the JSAPI with the Ozone widget framework and jQuery on one project, and jQuery and Bootstrap on another. Biggest problem I've had to date has been CSS issues with Bootstrap that were overcome with some custom CSS for the map. I've also brought in other modules such as Nianwei Liu's TOC library, Patrick Wied's heatmap library, and the cluster layer script and they've worked just fine in our environments.

Best advice I can give: Google is your friend, and ask the forum and you will (usually) be rewarded.
0 Kudos
AllanLaframboise
Occasional Contributor III
@PMMJWeyland and @jeff.pace, re: Bootstrap integration with ArcGIS, you might want to check out this OS project I published a while back.  It should jumpstart folks considerably. 

https://github.com/Esri/bootstrap-map-js

Cheers!
AL

Esri
0 Kudos
BenFousek
Occasional Contributor III
Bootstrap integration with ArcGIS, you might want to check out this OS project I published a while back.  It should jumpstart folks considerably. 


Sorry for not plugging bootstrap-map-js. It's the place to start for ESRI JS + Bootstrap.

Thanks and keep up the good work!
0 Kudos