Archive for the ‘ArcGIS Server’ Category

ESRI Javascript Viewer – Sample

January 19, 2009

I’m surprised to see the ESRI Javascript Starter Kit for beginner. Really cool utility.  Flex team has posted similar one with cool widgets, this is from JS team. I appreciate ESRI team for providing a sample as such.  Both sites use a combination of the ArcGIS Server REST API, and custom json services. They  built on the ASP.NET MVC framework. Use the sample and have a fun.

Download the same from ESRI Script centre

Advertisements

What’s Coming in ArcGIS 9.3.1?

December 30, 2008

ArcGIS 9.3.1 improves the performance of dynamic map publishing and increases the sharing of geographic information.

High-Performance Dynamic Map Publishing

* New faster rendering engine

o Outperforms equivalent ArcIMS services.

o Produces significantly better-looking maps.

o Shortens map caching time.

o Quicker, smoother zoom and pan.

* New Map Optimization toolbar in ArcMap helps you tune-up your map documents before publishing to ArcGIS Server. (Interesting one!)

o Review and respond to errors, unsupported content, and warnings about items that will slow down your dynamic map services.

o Preview your optimized map document and estimated rendering time.

o Save your optimized map document to the new Map Server Document (MSD) format.

Better Sharing of Geographic Information

* Better sharing of maps through ArcGIS Online

o Maps can be packaged and published through ArcGIS Online Web services.

o Maps can include content provided by ESRI.

o Maps can be found through a Web search.

o Contributors can organize and control access to the maps they share.

Enhanced Support for Java Developers

* Ability to create the following extensions:

o custom geoprocessing tools

o server object extensions (SOEs) for ArcGIS Server

o class extensions for custom behavior

o custom renderers for customized rendering of data

o plug-in data sources

o custom layers

* Support for Eclipse integrated development environment (IDE)

o wizards to generate boilerplate code based on the developer’s specification

o autodeploy feature

Easy to Migrate

* Upgrading to ArcGIS 9.3.1 does not require uninstalling ArcGIS 9.3.

* Easy to migrate or work in mixed environments of ArcGIS 9.3 and ArcGIS 9.3.1 within the same organization since geodatabases, map documents, and APIs did not change.

Availability

ArcGIS 9.3.1 is scheduled to be available in Q2 2009.

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.

Version 1.2 of the ArcGIS JavaScript API released

November 23, 2008

ESRI released Javscript  version 1.2 Javascript API and the details are here .

<script type=”text/javascript” src=”http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.2″></script&gt;

Please update in your CSS file too . Some features are listed below

  1. Support for Image services
  2. Support for Dojo 1.2
  3. More flexibility with cached and dynamic layer
  4. Refreshable map layers
  5. Improved graphics performance
  6. New methods for the geometry service
  7. Some bugs has been fixed in this release.

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

ArcGIS Server in Google Chrome

September 25, 2008

Here is an interesting thread in ESRI forum about ArcGIS Server support on Google Chrome.  Since google chrome is released, am wondering how does ESRI going to fit into new shoes. Surprisingly this post from ESRI came with an example and shows the template is not fitting. Though chrome released much later than 9.3 we hope ESRI or some professionals will provide some clues to make it fit in new browser.

http://forums.esri.com/Thread.asp?c=158&f=2272&t=264661&mc=0

ArcGIS Server on Google Chrome

ArcGIS Server on Google Chrome

Selection on SDE views – learnings

September 20, 2008

I am surprised that am unable to select the features on SDE views on ArcGIS Server.  Problem is I have created several views from SDE tables and added as layer in ArcMap using Tools—>Add XY being point layer.  I have developed tool to select features by dragging rectangle/polygon on the map; am using layer description object to show the selected features by changing its selection symbol and color.  I also had another interesting observation that I’ve used ESRI.ArcGIS.ADF.ArcGISServer.MapServerProxy .QueryFeatureIDs to get FIDset for the layer passed. It always returned entire records instead of records meeting spatial condition. I could not figure out the reason for this cause that much easily; I assumed that may be because of any projection issues so that envelope rectangle/polygon not overlaying with layer but that is the not the case.

The view which I added in mxd has OBJECTID field but which is of not type OBJECTID, hence ArcGIS does not recognize the same.  I have used another method  ESRI.ArcGIS.ADF.ArcGISServer.RecordSet to fetch the records that matching spatial condition that works fine and returns the intersected records exactly; but still selected features symbol colors not been changed. I’m till confused on this behavior.

when I opened the mxd and saw the layer properties-> Symbol Tab– ‘Show Selection Features’ pane is freezed. When I check the ESRI help it clearly says that if layer does not have ObjectID it is not possible to do any selections . Though I have created views with two tables one having field objectID is of type OBJECTID still view’s OBJECTID field type is of long integer.  I am unable to set even set unique ID field to objectID as ArcGIS does not accepts and prompts me the error message.

Either I need to create a feature class from the view and use it or I need to register as versioned . I do not want both of them since tables were updated frequently by another department; hence am restricted to keep this as table and use as a view in GIS application.

Now options (learnt from ESRI forums).

“A view can also be created in the DBMS referencing the existing layer’s row_id attribute (objectid) and then registered with ArcSDE”.

“The only way a view will support an objectid is if the source table’s objectid column is a registered rowid column for that table, *and* you use ‘sdetable -o create_view’ to create that view. I would strongly encourage you to use a geometry column in your table. Most databases support a native geometry type, which
would allow an update trigger to reposition the geometry when the coordinate column is modified.”

I have to work this and test the application again. if any one have similar experience or having idea on this let me know. Though I have worked with featureclass and other form of data; working with SDE view is still new to me. I always hear that view same as featureclass and also it same as Oracle views; but this issue makes me to think once again. This is new learning for me. This is truly challenging one for me though it would be easy one.

Looking for some replies….

Update: I have successfully created the views and able to do selections.

ArcGIS Online Services????

August 15, 2008

I am trying to connect to some of the standard map services from ArcGIS online using ArcGIS Server . There were several issues encountered while do so. This is not an easy task. Though ESRI says connecting to their services are simple and direct.  It should be noted that atleast service pack 4 is necessary to connect using ArcMap client. Connecting server using “ArcGIS server internet connection” . Selecting an ArcGIS Server Internet data source implies that the client will use access an ArcGIS Server service through a Web service endpoint.

In a resource manager, when specifying the definition for an ArcGIS Server Internet connection, provide the URL for the server that contains the service, then select which service you want to view from the dropdown box.  If authentication is enabled on the site, enter a username, password and domain before connecting.  There were several borders to be crossed if you were working in secured environment. Crossing firewall, webserver authentication, identity issues.

Since ArcGIS Server Web services can also utilize authentication enabled on a Web server, multiple Internet data sources with different authentication credentials can be used within the same Web application.  Installation of arcgis server and post installation is cumbersome job. Especially web application post install is important.

I’ve come across this error (see figure) while connecting to the services. If any one has fair success in doing so please drop me an email. I have deleted ArcWebServices account and did Web Apps post install but no success. I guess there is an identity issue while connecting.

Any ideas will be highly appreciated!

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