Archive for the ‘Getting Started’ Category

Some GIS Jobs…

August 15, 2010

I am sharing some GIS job Information .. am not sure about job availablity or any other details…

1. For GIS developers and GIS Engineers visit for more details – http://www.sblinfo.com/careers.aspx

2. For GIS Trainees, Freshers and experienced developers -: http://www.itoolz.in/index.html.  Please contact respectiv

3. JRF –  RF in research project titled “INTEGRATION OF BIO-GEO DATA BASE AND MODELING FOR
RUNOFF, SOIL LOSS, GROWTH OF BIO-RESOURCES AND EFFECT OF CLIMATE CHANGE” with study of watersheds in Arunachal Pradesh

Email Contact: Prof S C Patra
Email: scpneriwalm@gmail.com
Phone: +91 (03712) 268085
Fax: +91 (03712) 268107
Mail Address: on or before July 19, 2010, 5 PM.

4. Sr. Manager / Manager – GIS ADCC Infocad Pvt. Ltd. &GIS Engineers

Email Contact: Ashwin Radke
Email: ashwin@adccinfocad.com
Phone: 91-0712-3014201
Fax: 91-0712-2249605
Mail Address: ADCC Infocad Pvt. Ltd.
10/5, IT park, opp. VNIT, Nagpur-22.
Maharashtra

5. GIS Analyst — SRANS Infosystems Pvt Ltd

Email Contact: HR
Email: hr@srans.com
Phone: +91-40-40248270
Mail Address: SRANS Info Systems
Ground Floor
Plot No: 15, Haritha Bldg
Somajiguda
Hyderabad – 500082

6. Academic Assistant JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD

NOTE: if you are qualified and really wanted this job, please drop me an email with resume

Email Contact: Venkatesh
Email: csit_head@yahoo.com
Phone: 9440789934
Fax: 23058716,23055192
Mail Address: Room No: 607, 5th Floor, SIT Building
JNTUH Campus, Kukatpally
Hyderabad. 85.
Full Time
Salary: 12000/-+Rs4500/-pm if u take part time

7.GIS/CAD Engineer @ Geo-Spatial Technologies – 0-2 Years experience

8.GIS Marketing –Executive DOS Infotech

Email Contact: Manas Majumder
Email: dos.mktg@gmail.com

9. Jr.GIS Executive —- SGS Infotech Pvt Limited

Email Contact: OKMishra
Email: okmishra@sgst.com
Phone: 0124-499314,499310
Mail Address: Plot No-407 Udyog Vihar Phase IV Gurgaon Haryana
Advertisements

Flex API – Some Tips and Tracks

June 10, 2009

I have been working with ESRI Flex API for almost around one year. I would like to share some  basics of Flex API along with tips and tracks.  If you are beginner then I’m sure this post will helps you lot.

Here is link to see the list of Web Sites developed using ESRI Flex API.  If you are coming from  Web ADF,  Flex API  is really damn cool.  We can develop light-weight to medium level application using the Flex/SL/JS API.  You cannot do editing functionality. Flex API V 1.2 comes up with integration of MS Virtual Earth.

Start with Flex Viewer sample. This is the ideal place to begin with, where you start widget based programming model. The help document comes with Flex viewer clearly explains and search on Google for design patterns. There are lot of heated discussions about frameworks and patterns. I leave to reader for making his/her own choice.

  1. When you start developing the application(non Flex viewer), one of the must requirement is TOC control. By default there is no in-built TOC control.  You can develop your own custom TOC otherwise you can download this sample from ESRI ArcScripts site and make use of it.
  2. Here is sample for Overview Map . Click here
  3. Sometimes we may want to design a Map control with rounded corners than rectangular one.  Here is sample code

Here’s a way to use a mask to create rounded corners:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml&#8221;
xmlns:esri=”http://www.esri.com/2008/ags”&gt;
<mx:Canvas width=”100%” height=”100%”>
<esri:Map level=”1″ mask=”{maskCanvas}” cacheAsBitmap=”true”>
<esri:ArcGISTiledMapServiceLayer
url=”http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer”/&gt;
</esri:Map>
<mx:Canvas id=”maskCanvas” width=”100%” height=”100%” cacheAsBitmap=”true”
backgroundColor=”#FF0000″ borderStyle=”solid” cornerRadius=”15″/>
</mx:Canvas>
</mx:Application>

  1. If you are working with 9.2, still you can use Flex : While 9.2 isn’t supported by the Flex and JavaScript APIs out-of-the-box, you can create the map tiles in 9.2 and subsequently use the tiles in the Flex and JavaScript APIs by extending the TiledMapServiceLayer  to be able to connect to your specific service.  Here is link to study more. if you want do some geoprocessing and querying you have to use 9.3 version.
  1. You may want to some specific geoprocessing in Asynchronous mode, so that user can browse the application. Once processing is done, you can  work with results in asynchronous mode. Here is sample to start with
  2. Some times you may want functionality to save the map at client side.  File reference object is not available in Flash 9.x version. If you update with Flash 10.x you can do this pretty easily.                                                                Note1 : Do change the “Require Flash Player version” to 10 0 0 under the Flex Compiler section of your project properties and check your Flex SDK version it should be 3.2 and above
  3. We may require to zoom to set features extent after performing query.  This can easily done rather than looping through the record set and computing minx and max x

// zoom to extent of all features
var unionedExtent:Extent;
var multipoint:Multipoint = new Multipoint();

for (var j:Number = 1; j < resultCount; j++)
{
multipoint.addPoint(MapPoint(event.findResults[j].feature.geometry));
}
unionedExtent = multipoint.extent;
map.extent = unionedExtent.expand(1.1); // zoom out a little

4.  When you are querying using REST API and returning JSON response there may be chance that Error:  Unexpected I encountered.  First  check your data (i.e. value from the record). if it contains any special character like double quotes  then REST API throws error . ESRI  REST team is aware of this issue and they will be fixing it soon. One workaround would be to remove all double-quotes from your data (if possible). Another option may be to escape the quotes in your data.

5.  For parsing JSON response you need to download as3corelib.  You can use the JSON decoder from:
http://code.google.com/p/as3corelib/ to turn the JSON string into a Object.
e.g. var obj1:Object = JSON.decode(result);

6.  Another combining Dynamic and Tiled Services [Multi-layer cache] in LiveMap Widget for flex viewer sample

From the REST documentation:
“Note that multi-layer caches are only accessible in REST via export, and these requests are treated as a dynamic map service. Tile access is not supported in REST for multi-layer caches.”

http://resources.esri.com/help/9.3/arcgisserver/apis/rest/index.html?mapserver.html

7.  If you want add Identify Results into data-grid here is code snippet

var graphic:Graphic;
var myAtts:Object;
var myAc:ArrayCollection = New ArrayCollection();

for each (var result:IdentifyResult in event.identifyResults){
  myAtts=result.feature.attributes;
  myAc.addItem(myAtts);
}
dg.dataProvider = myAc;
Since its already getting late, I will post rest of the tips/tracks as second part, please bear with
me. Please write your queries/comments/suggestion.

Have a great day!

ESRI Microsoft Silver Light API Beta

March 21, 2009

I have been chatting with my friend who works for Microsoft India. We discussed lot about security and domain and finally I asked about Virtual Earth.  He said there is team working on this  in his office.  ESRI also released The ArcGIS API for Microsoft Silverlight™/WPF™ beta release on March 20th. Here is the link for more details on their API and samples to get start with.

I believe that all core MS fans will be very happy to work Silver light API  from now on. ESRI has announced long back but before their dev summit they have released this . I’, m  indeed happy on looking at their API.  When I writing this post, am downloading Silverlight on my lappy. Hence  I have to wait for couple of mintues to have look in and start play with.

These days I primarily work with Flex API. But am very eager to know on the SL API. Many of colleagues where keep watching on this.   Let us cheer ESRI for another flavour of their API to their clients/developers. Kudos!

I’m waiting for Monday on Developer summit and videos to catch up the action. I remember Jim mentioned that this ESRI will upload their session videos in one hour after the session is over. This is very glad news for people like me and working late night to see action.

First Anniversary !

January 23, 2009

Happy Anniversary to gisprog.wordpress.com

Dear All:

I am extremely happy that I have crossed one year in blogging.   I have started blogging Jan 21,2008 , its been a fantastic journey throughout.   Nearly 48000+ hits in one year and lot of appreciation and comments from many . I never thought my blog would reach these many people. I am happy that my posts were useful for the readers.

I take this opportunity to thank all readers who appreciated and encouraged me all the time. I place my sincere thanks to ESRI Folks, Jim Barry, Dave and my friends . I wish to write more useful contents on GIS programming and other topics as well.

I welcome your suggestions and comments to improve my blog further!.  Drop your comments!

Happy reading!

Cheers
Lakshmanan

Jim Barry (ESRI)….

“Congrats Lakshmanan on your blog’s one year anniversary!  I only discovered it several months ago, but it quickly became one of the few “go-to” blogs for GIS developers on my short list.  Not only to hear about your experience and insights, but you do a great job keeping the pulse of other technical content out there.  I’m sure it takes a lot of work on your part, but it’s greatly appreciated.  Keep it coming!”


Mumbai Navigator

January 19, 2009

I have really enjoyed the navigator site developed by IITB . This site was developed by Prof Abhiram Rande and other Masters students from CSE dept of IITB. Really great effort. They have developed using OpenLayers and the bus stops layer is generated using MapServer.

http://www.cse.iitb.ac.in/navigator2_gis/Main

As a transportation Engineer, am not sure whether any routing engine is used behind the scene or not. Generally developing routing application for Indian conditions is very tough. Anyways, Best wishes to team who developed this.

GIS Interview Questions

December 3, 2008

There were so many requests from the friends and folks asking me to write about some of interview questions for GIS Jobs. I always say that there is no such thing called specific questions asked in all the GIS job interviews, it all depend upon your resume and projects which you worked upon. If you work with .NET or Java, underlying principles are same. Everything is class and objects under the sun. I’m not going to give you a guarantee that these question may appear in your interview rather give you some basics that you must aware of if you work with ESRI products. Here, my aim is educate buddy developers to aware of these questions as well as answers :), not for sake of interview but as a GIS developer by profession. There is no specific order in the questions below.

This post only provides you a question, perhaps reader should come up with the answer, if you don’t know the answer, ping me in comment section.

  1. Define ArcObjects –  click here for answer
  2. What are applications of ArcGIS Desktop – Ans: ArcMap, ArcCatalog and ArcToolbox
  3. A __________ class represents objects that can be created directly.
  4. A __________ class cannot be used to create new objects, but it is a specification for sub classes
  5. A __________ can’t directly create new objects, but objects of a class can be created as a property of another class or by functions from another class.
  6. What is the basic difference between a command and a tool? – A MUST question
  7. Name the object that is first created when ArcMap starts running
  8. An instance of ArcCatalog has _____ number of templates associated with it by default.
  9. How many instances of an extension can exist per running application
  10. The _________ interface is implemented in order to create a configurable extension allowing users to toggle its enabled state.
  11. Which of the following the default renderer object when a new feature class is loaded?
  12. Which is the interface to which a renderer object can be assigned directly?
  13. Name the interface that can be used to do editing in ArcObjects
  14. Name the interface that can be used to create a new feature?
  15. Define Domain. What are different types of domain
  16. Which is the interface that is used to find a specific version provided its name as string
  17. ___________ merges the current edit version with the target version
  18. What is different between direct connection and through SDE connection?
  19. Define versioning and list its main events
  20. How will release com objects.
  21. If you want to update ‘n’ number of features in featureclass which interface will you use (performance wise)
  22. What is Callback in ArcGIS Server?
  23. Explain security model employed in ArcGIS Server . Whats new in 9.3?
  24. What is projection ?
  25. What are different projection systems and what is difference between projected coordinated system and geographic coordinate system
  26. What is a scale.?
  27. What is geocoding?
  28. What is reverse geocoding?
  29. What is geo-referencing?
  30. What is geo-processing?
  31. What is ArcSDE. What is database which you used?.
  32. If two persons updating the particular row of the table in database?. How does the system work?.
  33. How do you load data into SDE?
  34. How will create a SDE view?
  35. What is an interface to implemented for callback ?
  36. What is difference between queryfilter and querydef?, when to use ?
  37. Difference between IFeatureLayer and Layer
  38. What is generic class used to hold a set of properties for database connection?
  39. Whether every controls in Web ADF has a property “CallBackresults”?
  40. Give few command line ArcSDE commands?
  41. Difference beteween personal geodatabase and enterprise geodatabase
  42. What is ASP.NET AJax model used in ArcGIS Server 9.3 and 9.3
  43. What is BLOB?
  44. What is difference between Overriding and overloading
  45. Difference between abstract class and interface
  46. What is GPS ?
  47. ….many more…

EDIT: Here is nice post from Brain

UPDATE [ JULY , 2009] :  Readers are requested to find answers for the above questions. Please do not write me email/comments to send answers to all questions.

Competition Begins

October 21, 2008

In this post, I am just comparingMicrosoft Silver light API vs Javascript API vs Flex API.

Silver Light API :

Microsoft released Silver light 2 recently. The new API has features like .NET framework support, rich controls like Datagrid, List Box, Scroll viewer, Slider and calendar controls. Deep zoom: This enables unparalleled interactivity and navigation of ultrahigh resolution imagery.

We have already seen some of these new features used. Richie Carmichael developed a nice Microsoft Silverlight Map Viewer For ArcGIS Server 9.3. Microsoft Silverlight 2 will be available for download from http://www.microsoft.com/silverlight and if you have already been using Silverlight you will automatically updated.

Richie has a full write up about this new map control. You can find his write up here.   Albert Pascaul has  written about Using the ESRI Javascrip API as the silver light control SDK .

Another  Silver light impressions is registered here.

Doron’s has given his first impression about javascript API

ESRI resources on Silver Light API is here

Javascript API and Flex API:

There were lot of heated discussions going on blog space about JS API and Flex API.  James in his post provides wonderful insight Flex vs JS API and also comparison about Web ADF vs Javascript API is also quite useful.

“I developed a larger application with the Javascript API and then switched to flex. I am uniquely-positioned to give advice on the differences – Jeremy Bixby has given out the differences- Source : ESRI Forum

1) The javascript api implements an open-source framework, called “dojo” or “the dojo toolkit.” Flex is the framework for the esri flex api. So while javascript is the language that implements the dojo toolkit, actionscript is the language that implements the flex framework. Syntactically speaking, they are both quite similar. For example, in dojo there is the dojo.forEach loop, whereas using Adobe’s flex builder you can simply write “for each(var graphic in arrayOfGraphics){}”.

2) One major difference here is that you have to make reference to the dojo.for Each class in the header script for your application. With flex you can simply write the for each loop and not have to write any includes statement; the code that allows you to write the for each loop is in the flex library that you include in your flex project. Similarly, you have to find and include references for each component in the framework that you would like to use.

3) Developmentally speaking, Flex is hands down the winner (when developing with Adobe’s Flex Builder or Flex Builder Pro. Note that you don’t have to use the adobe developmental products, but it makes development fun!). Flex Builder has integrated support for CSS, component drag-and-drop, code collapse, auto completion, top-notch debugging tools and a profiling tool that allows you to gauge the performance of your application, capture data snapshots and identify areas where you can implement code and memory saving techniques to limit the number of object instantiations.

4) The dojo toolkit is poorly-documented. Half the time the web site with the api listed on it doesn’t even work. The flex framework is open-source, but it is privately-maintained by the Adobe company. If you are building applications that will replace an old IMS application or something like that, I have greater trust that a the flex framework will be better supported and be better integrated into whatever comes after flex then whatever the open-source equivalent is. Plus, the flex language reference, flex api and example snippets are all VERY instructive. Even the people who wrote dojo acknowledge that it is a work in progress, and the api has changed many times in the past year or so.

I guess the big difference here, for me, is the fact that the flex framework was developed privately and then released to be open-source. Dojo is intrinsically trying to develop from an open-source perspective. The result is a mess!

5) Object orientation of your code is easier with flex. If your application is a larger application and you need to encapsulate functionality in a series of objects, flex is the way you should go. To be sure, the dojo toolkit offers you the ability to develop an object-oriented application, but the management of the objects in flex builder as well as the testing and debugging functionality make life a lot easier. Unit testing is much easier with the flex unit testing framework (from adobe), then whatever dojo has going on.

6) The flex api from ESRI is more, well, flexible then the javascript api. Styling components is easier, and more likely to work correctly with any given flex component above and beyond esri components, and it is easier to trace inheritance in flex. Components are more likely to work together then they are in dojo.

7) There are also financial considerations here: to use the javascript api and dojo all you need is a text editor. Flex Builder Pro will run you $700ish. Even VS 2005 cost some X$.

8) Flex allows you to embed javascript in your flex, so that you can call javascript functions from your flex code! How is that for open-endedness and flexibility?”

I guess my bottom-line opinion is this: If you need to develop a large application that relies on complex algorithms, object orientation, or many different components, I would use flex. If you are looking to just throw a couple of maps on the internet with zoom in and zoom out, Javascript is probably the way for you to go. The javascript API does not expose as much as the REST API and Flex .

But finally one big reason to go off  the Web ADF. It uses the post back model and doesn’t work on ASP.NET MVC. Callbacks is eliminated when we use JS API and provides easy mechanism for the developer.

Most of the GIS professionals/projects developed /started using Javascript API as it straight forward approach and provides smooth transition from WEB ADF background.  Hence it would be difficult to judge or decide between these three at this moment, every API has its own features . The decision of selecting one depend on the bussiness requirement and other factors like developers skill set etc. I have added a opinion poll to caste your vote.

Cast your vote now ; and your answers will certainly matters a lot.

Honeymoon with 9.3

October 11, 2008

Hi Folks,

After long days of wait, finally day has come to work with ArcGIS 9.3. Like many, am also interested to know about features and enhancements in this latest edition. In my earlier post, I have discussed about ArcGIS Server 9.3. I have compiled the information from various sources. I got a chance to look at the documentation and resources (beta). Thanks to my friends who helped me to equip myself before I start; that gave me a head start.

As everyone, I have started with installation with brand new DVD from ESRI. I still remember my ArcView 3.0 CD’s, I had same excitment even now. I have encountered many installation woes  with 9.2, especially .NET ADF, I was worrying too.  But this time am lucky, my technical manager installed them perfectly.  Installation is a tough job and I add them as a task in my project plan. This is a very important step, as many of them find difficult in installation especially Server. If you look at ESRI forum, “Unable to Login in 9.2 Manager” top thread. I still wonder on seeing many work around suggested by the folks. I should appreciate ESRI this time for giving clear picture of installation steps. Utility to find existing older versions is of great help if you are new. The PDF document in installation CD helped lot for complete understanding.  I advice that one should strictly go through the documents and technical article before proceed. Otherwise, you may have to join ESRI party on thier forums 🙂

It would not be fair if  I did not talk about licensing.  If you have subscribed EDN then just activate them and get the 9.3 ECP files for all the products. For Desktop, I guess 9.2 license itself will work for 9.3. Pl correct me if am wrong. Soon, I will write a seperate post on ESRI licensing and products.  Keep watching!.

Let us dive into the action. I started with default “ESRI Web Mapping Application” . Once the project loaded in VS 2005; I noticed Ajax extension and rich controls. Just glanced on “Default.aspx” it preloaded with two map resource managers, Zoom Tool, and other basic navigation controls. Overview control moved to toolbar. Toolbar aligned left. Security features of 9.3 is adds lot of value. Seperate ESRI presentation on security models is to be referred for further understanding.  Updated Identify Control, Zoom previous and back tools, progress loading box to indicate server action comes with default template are few updates.  Login page will be helpful for developing enterprise application.

Server manager look and feel is also changed. Left panel has links to Manage a service, publish new service etc. Rich look and feel is nice for a developer. Publishing service is rather lot easier. Permission of using service with different user groups are great features. Almost rest of the functionality remains same. UI is has different look and provides warmth and comfort. After all we the developers see them whole day.

Once I add the services and changed resource item name “Layers” as opposed to “MapResourceItem0” and ran the application. Browser pops up with new look. Tools are aligned and Java scripts hassles are reduced.  I zoomed in and out and clicked Identify , it is brilliant. Then I clicked “Full Extent” oops application throws ugly error .  I am surprised  whether I did any mistake, everything looks OK, finally as usual – I searched in forum . It is confirmed that it is a ESRI bug [NIM035617]. This will be fixed SP1. Otherwise, application works fine.

Few other points:

  1. Resource manager equipped layer definition that layers, alias, color settings and styles can be set in no time. We can see fields, types and properties, without need of opening mxd. This saves lot of time.
  2. Map Identify class enhanced. Exclusions of unnecessary fields can be set easily.
  3. Adding identify results to results panel if necessary.
  4. Improved TOC and Over view controls using Ajax reduces much of callbacks
  5. Results Viewer: bi-directional highlight. The task can have different results behavior (fields, map tips etc).
  6. Map tips for all type of layers
  7. Out-of-box printing tool and export using Adobe Acrobat Reader (PDF).

and many more to be explored.

Recently James fee wrote an post about over-engineered application; some times I tool feel the same.  I started working with Avenue scripts–>MapObjects ->ArcObjects–>REST .  Due to technology advancements, products were improved with rich functionality and options, but I do not know how many of them uses them all.  At least how many of them know about the functionalities and features available?.  For example grid results controls attracted many users ; I expect this should be added by ESRI. This simple controls helps many. Most of GIS application requirements are fairly simple and straight forward. Nowadays Open source softwares provides easy solution on these when compared with propriety product. Anyway, 9.3 product is awesome on the whole at this moment, as being in honeymoon period.

I keep this post open to all ; professionals who works with 9.3 can share their experience and learnings. You can expect series of post on 9.3 experiences .

Welcome to ESRI ArcGIS 9.3 !

PS: As objective of my blog is share the basic fundamentals and help fellow buddy developers.  Hence many of the articles address the basic issue than much technical and complicated, for that, there were many sources and ESRI blogs.

ESRI Releases the ArcGIS API Evaluator

October 3, 2008

This handy tool allows you to scan all of your ArcGIS .NET code and generate a complete set of API usage statistics.  This will reveal the DLL dependencies, version information and the number of calls made to all ESRI assemblies, interfaces and members.

Help improve the product
One of the most important features of this tool is that it allows you to send your API usage information directly to the ArcGIS Development Team.  Once received, this information will be used to:

1.    Better understand the APIs that our customers are using (most popular).
2.    Make improvements to focused areas of the SDK (documentation and samples).
3.    Make decisions for future API development projects.

API Evaluator Scenarios


Scenario I – Help improve the SDK
Scenario II – Improve your code
Scenario III – Deployment

Source: ESRI

A few reasons to give it a try
I’m sure you can think of many different uses for this tool, but in general, you can use this tool to:

1.    Determine the general API usage for larger or unknown code samples.
2.    Determine the licensing required to run an application.
3.    Locate redundant code sections and make improvements.
4.    Detect library dependencies to help with deployment scenarios.
5.    Detect .NET version dependencies.
6.    And most importantly, help improve the product (see below).

This will be definitely helpful for ESRI developers and also knows understand how best you make use of it.

Note this can be used with 9.2 .. Please click on here to read on ArcGIS Evaluator

Dojo and ArcGIS Server 9.3

July 16, 2008

What is Dojo and why is it important to ArcGIS users?

Recently Alex Russell and Neil Roberts from SitePen were here in Redlands showing  some of the capabilities of the Dojo toolkit and how it can greatly simplify your life if you’re a JavaScript developer. We anticipate that a lot of you will be encountering Dojo soon because the ArcGIS JavaScript API is built on top of it. This post gives an overview of what Dojo is and what you need to know about it to be successful when building ArcGIS JavaScript applications.

What is Dojo?

Dojo is a toolkit that helps you write more robust and performant JavaScript code. JavaScript is a language that runs within the Web browser, and there are various flavors of Web browser that interpret the JavaScript in slightly different ways. Toolkits such as Dojo, YUI, Prototype, and many others are designed to abstract away the browser idiosyncrasies so that you don’t have to learn them all and handle them in your code.

Additionally, there are often several ways to code the same thing using JavaScript. Toolkits like Dojo provide functions you can use to do things in easier or more efficient ways. Using libraries from a toolkit can reduce the lines of code you write and make your JavaScript applications quicker and more stable.

What does it mean that the ArcGIS JavaScript API is built on top of Dojo?

The ESRI developers who created the ArcGIS JavaScript API used Dojo to simplify their development process (Why reinvent things that work?) and to ensure that the applications you build behave the same in different browsers. For example, the map zoom and panning animations use Dojo, as does the graphics layer.

Furthermore, the zoom level slider and info windows that you see in your JavaScript API maps are Dojo widgets (dijits). The slider dijit is provided with Dojo, and the info window is a custom dijit created by ESRI for the ArcGIS JavaScript API.

How much Dojo do I need to know in order to use the ArcGIS JavaScript API?

The amount of Dojo you use when you work with the ArcGIS JavaScript API is up to you, but at a minimum you’ll need to use several common functions:

  • dojo.require() – Similar to the <script> include tag on an HTML page. It imports resources into your JavaScript page.
  • dojo.addOnLoad() – Similar to <body onload=””>. It registers an initializing block called after the page has finished loading and the dijits have been initialized.
  • dojo.connect() – Similar to the Element.addEventListener and Element.attachEvent JavaScript functions. It registers a listener to listen to specific events on an Object or element on the page and returns results from a function.
  • dojo.byId() – Similar to the document.getElementById(id) JavaScript function. The function searches and returns the first HTML element with the argument ID.

When writing your ArcGIS JavaScript applications, you can take advantage of the full Dojo toolkit, which includes buttons, grids, tree views, charts, and other widgets. The toolkit is divided into three parts:

Core – Essential functions like those listed above
Dijit – Themeable widgets such as trees, menus, and buttons
DojoX- Extension projects in various stages of development, such as graphics, grids, and charts

How do I get Dojo? Do I have to install it?

Dojo is included with the ArcGIS JavaScript API. When you include this script tag referencing the ArcGIS JavaScript API, you get access to the full Dojo tookit version 1.1.0:

<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1"></script>

Many Dojo users download Dojo and host it themselves, or they reference the publicly available Dojo hosted on the AOL Content Delivery Network (CDN). When building ArcGIS JavaScript applications, there is no need to download or host Dojo, and you should use the Dojo included with the ArcGIS JavaScript API.

How do I get help with Dojo?

The Dojo Web site, www.dojotoolkit.org contains the official Dojo documentation. Documentation may be sparse, especially for projects in DojoX. Various books have recently become available that describe working with Dojo in more detail than you’ll find on the web site. The Dojo forums and the #dojo chat room on the IRC server irc.freenode.net are other good ways to get help.

Do the ESRI Web ADFs use Dojo?

At 9.3, ESRI’s .NET Web Application Developer Framework (ADF) contains a JavaScript library which should not be confused with the ArcGIS JavaScript API. The .NET Web ADF JavaScript library is dependent on the ASP.NET AJAX JavaScript Library and does not use Dojo.

The Java Web ADF also provides a JavaScript library, which was not written with a toolkit and consequently does not use Dojo.

Further Reading: http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2008/07/09/What-is-Dojo-and-why-is-it-important-to-ArcGIS-users_3F00_.aspx#2369