Developer’s Corner: GeoProcessing Tasks 10.1 (Advanced Python)

By Joseph Yoran

We all remember the days of ArcGIS Server 10 when we could simply put a python script in a toolbox and then publish the tools.  If something was wrong with the tool or we wanted to edit the script, we could just edit the python and replace the file and “voila” it would update on the server “automagically”.  Ahh… Those were the times.

With ArcGIS Server 10.1 they have made a more “secure” process wherein your python scripts are tested before being published as a geoprocessing task.  This process, according to Esri, was to force the script to be checked for errors through ArcMap before being published to ensure the success of the geoprocessing task.  Though this process is viable, it has its drawbacks.  For example:

  1. Your python is script ready.
  2. You open ArcMap and execute your script.
    1. Everything checks out.  Good Job!
    2. You now publish this to ArcGIS Server as a geoprocessing task.
      1. Oh No! You forgot to add something!

With the published 10.1 process, you have to do the time-consuming process all over again, executing the script through ArcMap and republishing.  What a pain right?  What if I told you there was a way to complete your python scripts the old fashioned way, the 10.0 way?  Well you are in luck, there is!

Steps taken to modify the python script WITHOUT republishing:

  1. The first time through you will still have to open ArcMap and verify it is a valid script.
  2. You will also have to publish it just like you would through ArcMap to put it on ArcGIS Server.
  3. Once it is on the server, all the python files contained within the directory of the toolbox are now located here.  This is the real bread and butter.
  4. The folder location is going to look something like:

C:\arcgisserver\directories\arcgissytem\arcgisinput\”NameOfTheService.GPServer”\extracted\v101\gptasks\

You should see something like this:

Here are the python scripts that the server is actually using!

  1. From here you can modify them. (NOTE:  You might have to make a copy of them and then make edits and overwrite the original files, or edit it using an application running in Administrator Mode)
  2. That’s it! From then you should be able to make your edits without having to publish over and over.

I have tested this multiple times without problems.  This is definitely a solution for those of us who liked the old ways of 10.0.  It’s a bit tricky to find this folder at first but once you find it you will be glad you did.

Advertisements

Esri Developer Summit 2012 Insights: Day One

Dan Levine

Here we go again. The GISi Development team at the 2012 DevSummit is seven strong this year… well six developers and myself, and I am really here for the Dodge Ball.  Once again we will be posting a daily blog to describe our reactions to the different presentations each of us attend.

Well I have to say, everything is about to get easier, from publishing data, geoprocessing, and map services, all the way to standing up scalable Amazon Cloud clusters and managing all of the AGS services on the cluster. Everything is wizard driven, drag and drop, point and click. Well not everything of course, but a significant portion of the processes in the ArcGIS stack have gotten simpler. For a developer, this is going to minimize the amount of time getting everything set up so they can actually spend time developing.

I also see these efficiencies really changing the analysts’ day-to-day activities. The ease with which we can now publish geoprocessing tasks into discoverable easy-to-use apps and get them in the hands of the end users is also going to free up the analysts from some of the mundane, allowing them to do the interesting stuff.  Figure out a problem; publish the solution, then on to the next problem.

The vision is that the map, with the data and geoprocessing task, serves all devices – defined as web, mobile, and desktop clients; and ArcGIS Online being the central service mechanism is compelling.  However I think as Esri develops this technology stack there are some things we as solution providers will need to tackle and I am still getting my head around these. First, while ArcGIS Online (and Portal for Organizations) is an Enterprise GIS, there is little talk of how the GIS can be integrated with the rest of the Enterprise Stack. While there is ArcGIS for SharePoint and ArcGIS for Cognos solutions, these are not core products, yet.  However, the fact that the services are all exposed as REST endpoints does offer tons of opportunities to integrate these GIS capabilities into the rest of the Enterprise.  I think we’ll start seeing demos shortly showing how these can be accessed by other enterprise solutions.  Second, we have been spending a lot of time helping clients consolidate systems and defining databases of record and implementing solutions around that. I think without some significant planning and workflow design, the simplicity of publishing data services could lead to entropy of data again – remember when everyone had their own shape files and personal geodatabases, and the mess that that created? Organizations are going to need to get in front of the wave and be creating services that serve databases of record for all to use, just to prevent everyone in the organization from publishing their own little piece of data to serve a specific application.

Any way you look at it though, the new technology brings many efficiencies, and with that new opportunities to solve different problems. It’s going to be a fun year!

Steve Mulberry

Another DevSummit underway in sunny Palm Springs; check out the plenary videos here.

It seems like just yesterday I was blogging  about the many SaaS (Software as a Service) offerings Esri released. Now at this year’s DevSummit the word of the day is GaaS. That’s right—GIS as a Service. ArcGIS Online version 1.6.3 will be available at the same time ArcGIS 10.1 is released in June of this year, and offers much more than just pretty maps. ArcGIS Online becomes a GIS in the cloud as a subscription-based offering for hosting and managing data, maps, applications and organizational portals. We also saw the new and improved resource center, with the focus of many sessions around the new ArcGIS for Communities.

Each community offers free hosted or downloadable solution templates for web or mobile devices, data models, desktop tools, and access to online maps and services for your specific area of interest.

We saw a whole new paradigm in authoring, publishing, and using services with the re-engineered ArcGIS Server, as well as a Flex Air tool for managing ArcGIS EC2 instance on the Cloud.

This year’s DevSummit is off to a great start…..stay tuned for more.

Caleb Carter

Things kicked off this morning with a delightful welcome animation illustrating the coming-of-age journey of a hard-core coder, with an accompanying rendition of the Johnny Cash classic “I’ve Coded Everywhere, Man!”  And once our adrenalin was pumping Jack took the stage and gave us something important to think about as the development community, that works to marry the expanding capabilities of GIS with the ever-evolving needs of our customers:

“We have to believe as humans that we can make a difference.”

The remainder of the summit will serve to educate us on how the capabilities are expanding, as well as to brainstorm and daydream about how we can use what’s coming to better meet our clients’ needs.

Following the introduction, there was a demonstration by Phoenix Skyharbor International Airport detailing their efforts to use ArcGIS to streamline some basic parking capacity workflows, as well as their subsequent exploration of where GIS could take them (check out their mobile site).

Then we got down to business with the overview of what 10.1 will bring to the table.  There were many little goodies that we’ll see (and share) more details on over the next couple of days.  Two high level themes that were very clear at the morning session were:

  • ArcGIS Online is moving toward the center of the universe (or vice versa?)
  • Everything builds on top of ArcGIS Runtime

The following are the highlights from the technical sessions I was able to attend this afternoon:

Choosing a Mobile Deployment Platform

This session was a little more introductory than I’d hoped for, but the content was at the very least a re-affirmation of the lines of reasoning that I have observed and participated in in terms of choosing platforms.  Also it served to set my frame of mind in preparation for some in-depth mobile sessions to follow.

The bottom line is you need to know your client—know their business, know their GIS expertise, know their budget,  and know their data requirements.  If you have a solid handle on these areas, then the device and platform will usually present itself.

What’s New in Silverlight?

There are some expected items in this list, which we’ll probably hear repeated in most sessions—make use of new ArcGIS Server capabilities, and include/utilize a Runtime SDK. Beyond that, the Silverlight team has added the following (probably not comprehensive) list of capabilities in version 2.4, which was released in January:

  • An Application Builder with an Extensible Framework
  • Integration with ComponentOne

And with version 3.0 RC released this month, we’ll also see:

  • Server 10.1 capabilities:
    • Additional Map Service support (Dynamic Layers and more)
    • Feature Service support, including Editor Tracking, Versioning, and Ownership-based editing.
    • Print Service support
    • Image Service support (there was a slick demo of image georectification using Silverlight in the plenary session)
    • Upload (images, attachments)

Developing with JavaScript for Multiple Platforms

This was a user presentation of one team’s process for targeting multiple platforms with as little effort as possible (isn’t that what we all want?) The team used a tool called Appcelerator which compiles JavaScript to native executables for six (I think) platforms.  There are drawbacks of course.  Appcelerator will not target Windows Phone 7 for one, which was an acceptable sacrifice for this team.  Also there is no visual UI builder, so if you’re not comfortable with control placement and sizing in code, you may want to reconsider.  Finally, and this is a pretty big one in my opinion, Appcelerator doesn’t provide access to all of the capabilities of every device.  If one of your target devices supports a capability the Appcelerator hasn’t accommodated yet, then you have a significant hurdle to overcome if you want to use that capability. On the other hand, if your requirements are pretty basic, and if you don’t mind a device or two left out, this may just be a good way for you to achieve what this team was shooting for, which is to increase market penetration through a presence in the native app stores/markets.

Building Applications with ArcGIS Runtime SDK for Windows Mobile

This was my favorite presentation of the day.  Having been neck-deep in the ArcGIS Mobile SDK for the last several months, I was anxious to see what was coming in 10.1, and in particular, what the migration to the Runtime SDK would mean. As it turns out, the migration to Runtime SDK was very well illustrated.  We were walked step-by-step through taking an application built for 10.0 and upgrading it to 10.1.  We saw what broke, and we saw how to fix it.  Aside from some obvious stuff, such as dll names, namespaces, and a couple of class names, there were a few changes worth noting:

  • Several components were pulled from the designer—specifically map actions. Rather than adding them by dragging and dropping on your form, you create and add them in code.  This is done mostly for consistency.  Only a subset of map actions was available in the designer to begin with.
  • A 10.1 application cannot consume a mobilecache created using 10.0.  However you need not upgrade your entire ArcGIS infrastructure to make this work.  Simply installing ArcGIS Mobile 10.1 will replace all of the mobile geoprocessing tools with new versions.
  • The map control no longer has a DataSources property.  Data layers are added using the Map.MapLayers property.

There are several other changes.  Here’s a brief list of some of the highlights:

  • Mobile Project Center has added a Validator (similar to mxd validation in ArcMap).
  • MPC integrates extensions seamlessly.  It’s as if they were part of the core capability.
  • Added attachment support.
  • Routing with Streetmap Mobile (only for the SDK, and only on the Windows platform, not Windows Mobile)
  • The next release version of what is now “ArcGIS Mobile 10” will be “ArcGIS for Windows Mobile 3.0” in order to better align with the versioning of the runtime.

And finally there’s the roadmap. What’s coming later?

  • Support for Tables
  • Relationship Classes
  • Laser Range Finder support
  • Ad-Hoc Schema Creation
  • Expanded Routing Capabilities

All in all it was a good first day.  I’m anxious to see what is revealed tomorrow.

Sean Savage

The DevSummit started with the full flair of an Esri-style production for the plenary session, which featured glimpses into the newly overhauled 10.1 version of ArcGIS Server—perhaps  one of the most enticing aspects of the opening session. As a native 64-bit application and streamlined code under the covers, the upcoming release appears to be quite a significant deviation from what we have come to know (SOM, SOC, etc.). Performance gains were presented through a series of quick demos, including a drive time analysis that updated based on the position of the mouse as it hovered across the map (the drive time polygons and a route from the origin to the current mouse position updated in very near real time!). Completely based on http calls to web services with APIs to facilitate programmatic administration/manipulation, it looks to be much simpler to deploy and manage.

Similarly, ArcGIS Desktop has undergone some corresponding changes that mirror the simplicity of Server. Publishing or sharing services from ArcMap (optionally including the required data) is nearly as easy as saving a map document, especially when the target is a cloud server. Likewise, the process of deploying a geoprocessing task follows the same streamlined path, and can be published with or without pushing the data along with the task. And with extended Python capabilities (better data access, cursor control, rendering, etc.), the geoprocessing tasks can be easier to use and more powerful than ever.

There were a flurry of demos focusing on ArcGIS Runtime that illustrated consistent functionality across the APIs (Android, iOS, Windows, etc.). I was impressed by the performance of each, though the advances they have made in the Runtimes was highlighted through a side-by-side comparison of the ArcGIS Runtime for Windows that showed a dramatic improvement in rendering graphics. The demos also emphasized ArcGIS Online hosted services, with the new capability to take your data and work offline/disconnected with subsequent synchronization, which is largely made possible by hosted feature services and tiled services. Esri also made a point that they are shifting perspectives away from considering mobile vs. Desktop, and they are now looking at Desktop as just another device and not a separate framework.

The last topic of the plenary session was a brief glimpse into the future. A quick demo showed that even the geoprocessing tasks and the data required to perform them will capable of disconnected analysis and performed offline in the field (i.e., routing, geocoding, etc.). Esri teased about the widgetized windows framework that won’t require any manual configuration. The demo showed creating a simple application that included a map with an ArcGIS Online hosted map that displayed dynamic content. The map and associated widgets can point to common data feeds that are all configured through the UI. They also presented what they are calling “Metro Style” Windows 8 applications, which have the whole screen display, and the look and feel of an iPhone/iPad app.

The whirlwind plenary was pretty impressive, but obviously could only hint and tease at many of the features—most to be covered deeper in sessions.

The first session I attended was focused on testing within an agile development approach, that is, looking at Test Driven Development (TDD). Not knowing what to expect, I actually found it to be very interesting. Certainly, the key takeaway for me was that while I have used the “agile” buzz word, I have never participated in a project that followed that development approach, but rather than focusing on the tenets of agile, the session focused on the discipline and extensive testing efforts that are required to support agile development. While somewhat intimidating, the discussion also made me that much more curious about attempting to follow this path on a project!

I also attended a session on ArcGIS Server Performance and Scalability analyses. This was a good session, but ultimately represented a high-level summary of a training opportunity I was able to participate in last fall in the GISi Birmingham office, but this time without the cool tools to actually perform the analysis. The message was really more about the components of performance and where to look or what to consider when things aren’t behaving as expected, and less about designing a responsive and scalable system.

The last session I participated in on Day 1 was ArcGIS Server for Amazon Web Services. This was a very interesting session! What started out as what appeared to be a high-level review quickly turned very interesting when Esri introduced their new Cloud Builder tool. Cloud Builder is an Adobe Air application that leverages the EC2 API to allow administrators to quickly and easily spin up new cloud instances based on either the Esri AMI or a user customized AMI. The application facilitates creating the instance (along with starting/stopping the instance), authorizing the Esri software, establishing the required key pair, setting up auto-scaling, and backing up the AMI. With Cloud Builder, the Esri folks showed that you can create a new cloud instance, get the software authorized and running, and publish services (and data) without ever logging into the cloud server itself!! This is all facilitated by architectural changes made with ArcGIS Server at 10.1. They also discussed aspects of responsible cloud usage (planning/understanding the costs, managing AMIs and security, etc.), but my mind was spinning around the new tool far too quickly to care about that stuff yet!

Mike Haggerty

As I found my seat 10 rows back to the left of the stage in a comfy faux-leather couch before the Esri DevSummit plenary session this morning, I was worried whether the comfort of the seat and the darkness of the room would overcome the forces of my morning coffee.  Thanks to the engaging presentations and exciting announcements, though, I remained wide awake.

After Jack welcomed us to the 6th DevSummit and inspired us with the notion that software could perhaps overcome the darkness of the world, we dove into updates and demos from web API team, ArcGIS Online teams, and runtime teams.  One gem from the runtime team – everything is a device.  Your desktop computer is a device.  Your phone is a device.  Your tablet is a device.  Stop thinking in terms of mobile platform / desktop platform, and just get it into your head that everything is a device.  And every device needs the capability to run native apps; therefore every platform needs a runtime.

A nice surprise was the announcement of an OSX Runtime with a native Cocoa API.  This now rounds out the runtime suite of Windows, iOS, Android, and Linux.  If you asked me a few years ago, I wouldn’t think native platform development would be getting much attention these days.  I would have said, “It’s all about the browser, baby.”  But with the hardware available in the thinnest form factors today, it makes sense to tap into that with a runtime whose core is written in C++ and can fully exploit all the available resources.

There was good content today and much was learned.  Can’t wait for tomorrow!

Ben Taylor

The plenary session promised several welcomed and potentially profound changes coming to AGS Server, the web APIs, and the runtime engines. Highlights for the 10.1 release include a noticeable increase in performance, tile layer packaging, and simpler creation and configuration of geoprocessing services. The APIs boast custom symbology and enhanced printing capabilities. Perhaps the biggest change revolves around native application development. There is a shift in the development philosophy surrounding the ArcGIS runtimes that attempts to blur the distinction between mobile and desktop applications, and view these platforms as just another device and not disparate technologies. We got a sneak peek at some of the goals of future releases of the various runtimes for mobile apps that drive this point home. Functionalities will include disconnected geocoding, networking, and 3D modeling. In addition there was a demonstration that focused on configurable desktop/mobile applications (think widgets).

I attended a few sessions dealing with the JavaScript API. Though the content was geared more towards beginners, I did pick up a few good tidbits. One is how to utilize ArcGIS Online to take care of all your layer and cartographic configurations. All that is then needed is a reference to the map in your JavaScript, which I thought was a pretty clever shortcut.

I wrapped up the day by attending a few user presentations. The first topic dealt with converting an existing Flex application over to AIR in order to achieve disconnected capabilities. Python and Django were employed to tease out tiles into byte arrays, which were stored in a SQLite database. The methods used to pull the data back into AIR were the same that will be used for tile layer packages. The second topic focused on web design in Flex. The presentation drove home the point of only giving the users what they need in order to accomplish their given goals, rather than serving up the entire API, which in many cases can clutter the UI and cause unnecessary confusion. The final talk dealt with an interesting approach to try and determine the root cause of performance issues in a Flex app. The developer wrapped each component with a custom timer to help highlight any code that may be slowing the application down.

Chris Bupp

This being my first DevSummit, I didn’t really know what to expect.  But they really brought out the “wow” factor.  Demos went well, and I’ve already started rethinking how my projects need to be reworked to target the new directions.  I started things off light with a refreshing “Projections, Spatial References, and Geometries” session; I had several “Oh, that’s why we do that” moments.  (Did you know that there was also a vertical project model? I think I’ll be spending some time on Wikipedia researching that tonight)

Next I sat in on “Getting Started with ArcGIS Online”.  They didn’t get nearly as technical as I wanted, but I plan on tracking down the speakers and asking them some more questions; ArcGIS Online looks really awesome.

Finally, for the third tech session today, I went to “.Net Add-ins for ArcGIS Desktop”.  They’ve drastically simplified the add-in architecture.  It’s going to be very frustrating the next year(s) until my projects have upgraded to 10.1; they did a great job making ArcGIS 10.0 look completely archaic.

Esri Developer Summit: Day 3

Dan Levine

So Esri kicked off Wednesday announcing the winners of the Developer Challenges.  Frank Roberts won the Developer Challenge with what looks to be something like the Tri-View Tool that we have been deploying for a couple of years. Not sure about the details, but it would be worth looking at to see if we can leverage each other’s work. Some of you may know Frank; we have interviewed him a couple of times trying to figure out how to make a fit within GISi. Congratulations to Frank.

Next was the Keynote. Apparently a last minute substitution by the Gartner Group sent a solid number 2. Michael King, Research Director, Gartner, spoke on The Future direction of Mobile Application Development.  He had many different stats and charts talking about how the mobile industry is incredibly dynamic now and how that impacts us as developers and solution providers. A couple of the interesting stats:

  • In the next few years 70% of all interaction will be through our cell phones
  • Mobile is a Trillion dollar business.
  • Industry is VERY fragmented and don’t see a consolidation for a least of couple of years if it ever happens, largely driven by how personal the use and experience of mobile devices are.

Above and beyond the statistics and observations, Michael presented that he believes that the successful solutions will be the ones that most effectively harness the ability to be context aware and have the most elegant interfaces. Specifically around context aware, not only is he referring to where you are (GPS), what you are doing (calendar), what you are supposed to be doing (reminding you that your anniversary is tomorrow while you drive by the florist that you bought flowers from last year), but tying this all to business and personal data systems to the point where the mobile device is keeping track of more information about you than you possibly can remember at any one time. Couple that with an interface that adjusts to how you use the phone and learns what your preferences are over time.  For instance, for me that might mean that when I travel I always look for a CrossFit gym local to where I am staying. Well instead of me going to Google on my phone and stumbling through entering in “CrossFIt XXXXXX” for wherever I am, it would recognize that I am about to travel and just performs the search and gives me a list of results in the format that I typically look for: contact information, directions, and schedule. Within this theme of contextual awareness he talked a little about Augmented Reality and how the industry is still trying to figure out what we can do with this, how we implement it, and that we have to wait a bit for the hardware technology to progress to make this really work well. An example he gave was a crew in a manhole looking at a 100 year old valve. The only guy in the city that knows how to maintain that valve is back in the office but can share the camera screen from the guy in the field and do live annotation to walk the crew through what to do and not to do.  This did tee up the presentation that Pat did later in the day well, and packed the room.

I am still somewhat surprised that the Mobile sessions, and there are a bunch of them, aren’t the ones that are packed. Seems like the server sessions are still the most popular.

Steve Mulberry

Check out the recorded plenary sessions here: http://www.esri.com/events/devsummit/videos-and-photos/index.html

Great keynote speaker form Gartner; He discussed the many facets of mobile computing and the trends and predictions for the future. One thing that stood out was the amount of mobile devices projected to be used in the future will by far outnumber the laptops. So planning accordingly with respects to UI/Application development is a key to succeeding in this market space. The speaker noted that mobile development should not be a sideline event but imbedded in application development strategies and procedures. We keep hearing the same ole adage about making it simple and easy to use. But we GIS geeks need to think outside the laptop when it comes to mobile development. That’s where you the designers come in.

I sat through several sessions dealing with performance, scalability testing and architecture scaling. The common theme always lead back to making sure your map document is optimized and ready for web deployment. Here are some tools that help this process:

  • PerfHeat – http://arcscripts.esri.com/details.asp?dbid=16880. This tool produces a grid showing color coded rendering time ranges across the map extent. Display rendering times are generated for each map scale, presenting a spatial overview of display processing loads.

All these tools along with additional capacity planning and performance benchmarking can be found in the report. http://resources.arcgis.com/gallery/file/enterprise-gis/details?entryID=6367F821-1422-2418-886F-FCC43C8C8E22

Esri unveiled a new GIS Testing Tool that incorporates the above tools and methodologies in an all-in-one tool. Currently this tool is only available through professional services, but it was suggested that once final it may be made available for download.

Patrick Barnhart

The two biggest things that happened today, at least from my point of view, were successfully surviving my presentation on Augmented Reality and having the GISi dodgeball team (named Gone in 30 Seconds in honor of last year) exceed expectations.  The presentation went well; if you’d like to see the on-screen part of it, check out http://prezi.com/iy3lglcdn6xi/augmented-reality-using-arcgis-and-layar/.  Prezi saved the day on this one; it made things a lot more fun to prepare and present than if I had to do it using standard slides.  Gone in 30 Seconds got a bye in the first round, emerged triumphant in the second and then were defeated by the team that went on to win.

As for the stuff I’m really here for, which is to learn as much about developing web applications using Esri products as possible, it was also a success.  I attended a session entitled ‘Advanced Development with ArcGIS API for JavaScript’ which really should have been called ‘Intro to Mobile Development using the JavaScript API plus some HTML 5 and a touch of CSS3’.  So, it wasn’t what I was expecting but it still turned out to be the most interesting session I attended today.

There are APIs other than JavaScript that are designed for mobile development but they’re device specific, which is kind of a turn off for me.  If I’m putting in the time to write a phone app, I want it to run on iPhones, iPads, Androids, Blackberrys, you name it, and if it’ll run on the desktop too then glory hallelujah.  Write once run anywhere is what I’m after and while it seems that the world is not 100% ready for that ,the JavaScript API gets you closer than anything else.  Other than straight html of course, but that’s just too limiting.  The morning’s keynote session talked about the “do’s and don’ts of mobile development, and if you’re just using html, you’ll end up with a bunch of don’ts (clunky interfaces that are a pain to use).

To make a really sweet phone app with a native look and feel without redoing the code using a separate API for each device, you need to use a framework for the front end.  Something like JQuery Touch, DojoX Mobile or Sencha Touch provides the user with nice big buttons and the fat-finger pans and zooms that everyone is used to.  I do a lot of ExtJS development so it would have been nice to see Sencha in action, but JQuery Touch is cool too and that’s what most of the demos were.  These apps won’t work for the desktop but that was pie-in-the-sky anyway; the platforms are just too different to use the same interface.

  • iOS (iPhones and iPads) – this was described as the best browser of the mobile devices with support for SVG overlays, geolocation, html 5, creating and editing vector graphics, etc.
  • Blackberry Torch – this one’s a little more limited in that zooming in/out using a pinch, isn’t supported and it’s a little slower, but it does handle most of the other capabilities.
  • Android – the Droid phones are more limited in certain things, especially since it doesn’t support SVG overlays.  Vector graphics are rendered as part of the canvas so you can’t select an individual feature and manipulate it, although you can create features and add them.  You also have to set a meta tag to disable gestures on the entire page so you can zoom in/out on a map object, but not the overall view.

So, back to what I want, which is the ability to run the same app on as many devices as possible; the way to go about it seems to be using something like Sencha Touch to build the interface and then hook the events and listeners to JavaScript API, which calls to ArcGIS server.  Design the app for the most limited device, which surprisingly enough seems to be the Android, and go to town.

The JavaScript API works the same way as the rest of the Web API family – create a map object, create a layer object, create a feature object, add the feature to the layer, the layer to the map, etc.  There are a lot of built-ins (way more than OpenLayers), but it’s pretty straight forward stuff once you get the hang of it, so I’m not going into it much here.  But now at least I have a plan for building flexible mobile apps and know what tools I’d like to use when I get the time to make it happen.

The session also went into some pretty cool examples of using HTML 5 and CSS3, but I’m not getting caught up in that until it’s actually here.  Quick note: there’s a site called CanIUse.com that tells you which devices support the really cutting edge stuff.

And there was a bonus!  At the very end of the presentation they mentioned something called the Print REST API, which apparently takes the pain out of printing maps with vector overlays, external wms layers, text, etc.  Exactly the stuff I’ve been doing in the open source world for the last couple of months.  It doesn’t help with my current project, but I’m sure I’ll get a shot at it sooner or later.

In a separate session on Python, I also got a glimpse of using ArcPy to support template driven printing to PDFs, which is another of my current tasks (also using open source technology).  So again, I can’t really use it yet, but I foresee great possibilities and hope to learn more about Python tomorrow.

Danny Bradshaw

Day 3 kicked off with an intriguing discussion with Michael King from Gartner Research concerning the pervasiveness and trends in mobile computing over the next few years.  Although nobody has the magic 8-ball (especially in the ebb and flow of the mobile tech industry), he threw out some interesting stats:

  • 214,000,000 tablet devices in the next few years
  • 80% market penetration for smart phones in developed countries in the next few years
  • 2013 – Mobile phones will overtake PCs for internet access.
  • 2014 – 30% of users will use augmented reality with their mobile experience

Some other interesting sessions came from the Esri Prototype Labs and Esri Production Teams (i.e.  those responsible for making sure they hit the deadlines).  While I could write a book on cool stuff, I was particularly interested in an unconventional dynamic physics symbol, in which the bigger symbols would “bully” the smaller symbols and take their place on the map.  The prototype team also demonstrated an interesting augmented reality app that used a sheet of paper with a specific “marker” that was replaced with an interactive map while video conferencing… think green screen.

The development teams/managers talked about the Esri internal development process.  I was interested to see their strategies, which closely follows the Agile (Scrum) development process.  ESRI loves Scrum and was evangelizing that development process.  I’ll be honest, I was bored to tears as the discussion turned to their extensive… extensive QA processes, but be happy to know they’re thorough.  Some interesting stats out of that session:

  • 200 unique developers checking in code daily
  • 95,000 source code files for ArcGIS Desktop, which takes 5 hours to compile (daily)
  • AGS Desktop 9.0 = 6.9 million lines of code;  AGS Desktop 10.0 = 15.97 million lines of code

Melinda Frost

Since I am all about mobile I am going to write this up on my iPhone! Of course it will be shorter because I did have to go to walk-in clinic for a sinus infection. Everyone here is super nice.

Anyway- back to business. Tuesday night at the meet the teams night, I ran into two of the developers for the 10.1 mobile SDK. So, of course, I drilled them about the problem I am having with the WPF map control ‘flickering’. People want it to behave like TomTom or Garmin.  They told me that the 10.1 SDK for mobile will be significantly different. All the API will be pulling from a new core SDK. And they claim it will be WAY better than TomTom in that regard.  I said ‘Great but I need that NOW’. I did leave my contact info with them so I can be in on the holistic testing for this. Wednesday I ‘tackled’ Martin and Jay- the head guys for the mobile SDK dev team. Again same answer.  After I show them the best work-around I have come up with and I start to see some hope (breaking down) from them. They plan to take my code back and look into if that is something they can do sooner. Fingers crossed!

Other conference related info picked up is that if you have developed for Silverlight web app and/or WPF apps, then you are all ready to build a Windows 7 phone app. Same xaml and C# or VB.NET in back end.  Good news for all you Silverlight and WPF developers.

Tommy Bramble

Day 3 started with the conference Keynote Speaker, Michael King, from Gartner Research.  He talked about the past and future trends in mobile technology and how our lives will be impacted as the technology evolves.  Context-aware computing will become the norm where our smart devices, and the services that power them, will know more about us then we do our self.  The smart devices will become even more powerful and ‘aware’ through sensor driven data capture like facial recognition, better speech recognition, enhanced audio and video sensors, and other advanced sensors that require less direct user input to interact with the device.  Mr. King also covered some do’s and do not’s of mobile application development and commented on how augmented reality will become a much more powerful tool as it evolves.  We can expect to start seeing more ‘real world’ applications where augmented reality apps will assist people with work and other things in life instead of just being the ‘cool’ toy.

My first session of the day was ‘Advanced Development with the ArcGIS JavaScript API’.  This session was almost entirely focused on mobile development with the JS API, although the session was not listed as mobile.  The session probably would have attracted a larger audience had they actually listed the course under mobile.  The presenters demonstrated building mobile friendly web apps using jQuery Mobile, Dojox.Mobile, and Sencha Mobile; all using the JS API for the mapping functionality.  The presenters also briefly covered the HTML5 components that are available in most browsers that can also be leveraged in mobile web apps.  In my opinion, there wasn’t much ‘advanced’ knowledge regarding the mobile development.  The demos were very basic examples of wiring up a mobile web app.  Maybe just the fact that it was ‘mobile’ was advanced.  I did have to leave the session 10 minutes early to prepare for my Tech Support session with the Esri techs, and I was told the presenters did demonstrate a really cool drag-and-drop feature of the web app, but you’ll have to hear about that from Ben who was available for the entire session.

Next up was the ‘Building Secure Applications’ session.  This session focused on securing your ArcGIS Server services and the web applications that consume them.  The presenters first reviewed the correct procedures for securing the AGS services using users and roles, and then reviewed how to use the admin security tokens to get access to the secure services.  The session also covered using proxies with your secure services and then taking the security to the next level by securing your application front-end (client).  The out-of-the-box ASP.NET membership provider was used as the examples for creating the AGS server user and roles and for the application security, although a custom membership provider can be used in its place.

I sat in on the ‘Intro to ArcGIS API for Windows Phone’ next.  This topic area was completely new to me, but I was able to walk away for this session with the basic principles of the Windows Phone development.  A point the presenters emphasized repeatedly was that developing for the windows phone was no different than developing Silverlight applications.  Most all the same tools and class libraries for building Silverlight apps are used for Windows Phone, with the exception of a few class libraries specific to the Windows Phone environment.  The presenters also demoed some of their existing Windows Phone applications, like ArcGIS for Windows Phone and the AtoB Navigation application.  The presenters also gave away a Windows Phone 7 at the end of the session to the person in the audience who could stump the crowd with a Silverlight/Windows Phone development question.

Next up was the most anticipated part of the day, the Dev Summit Party.  Esri had a nice setup of games and entertainment as usual with the highlight of the event being the Dodgeball Tournament.  GISi formed the team ‘Gone in 30 Seconds’.  Luckily, we did not live up to that name and actually won our first match-up in the second round (after a first round bye), but sadly were knocked out of the tournament in the third round.  I also took a shot at table tennis, but finished the night with a disappointing record of 1-4 in my match-ups.  After my last competitor destroyed me by a score of 21-8, with a few of my coworkers watching, I decided to retire from table tennis and call it a night.  All and all another great day at the conference.

Ben Taylor

I sat in on another Javascript API session. There is some pretty slick drag-and-drop functionality coming down the pipeline. The presenter showcased a file api by dragging an image directly from his file system and dropping it onto the map within the browser.  I thought that was pretty cool until he dragged a csv file to his browser and the points along with the associated attribute data within the csv file appeared on his map. He also was able to add additional services by just dragging in the link of a rest endpoint from another browser and dropping it on the map. The only caveat at this point is they’ve only gotten the functionality working in FireFox and Chrome. They’re still working on getting this viable in IE9.

In addition they demoed a print tool for Javascript API that will probably be included in the next release. This tool is meant to be used until out-of-the-box exporting is made available in 10.1.

I also attended an advanced Flex session. This being my first dev summit, it turned out to be quite a treat to hear Mansour Raad present. He gave a lively presentation on how to best utilize the MVC pattern to develop Flex applications, so that they can easily be adjusted to fit web and mobile platforms.

ArcPy + ArcGIS Server = Excellent, fast, high quality prints

In a previous blog, Bryan Baker discussed how it is possible to create high-quality printed maps through ArcGIS Server (using a webservice and ArcObjects combo).  Now that 10 has been released, with all of its new libraries and other pieces to make our lives easier, we saw an opportunity to create a web-based printing solution without using ArcObjects.  With the release of 10, ESRI bundled a new python site package with ArcGIS Server (and ArcMap) called ArcPy, which gives developers access to items once only obtainable through ArcObjects. Read more of this post

GIS-based Sign Inventory Solution

We are underway building a repeatable solutions framework that complies with the Federal Highway Administration (FHWA) retroreflectivity mandated standards.  The solution establishes the means to improve the nighttime visibility of traffic signs to promote safety, enhance traffic operations and facility comfort and convenience for all drivers of all ages and abilities.  Benefits include:

  • Asset management
  • Safety
  • Life cycle analysis
  • Tort liability

The GIS-based Sign Inventory Solution is a mobile and web enabled framework built on ESRI ArcGIS Server-based that is a repeatable framework for other cities and counties looking for a system to support the FHWA retroreflectivity standards.  GISi is using the ArcGIS Mobile SDK to develop a mobile sign inventory application to run on mobile data collection devices.  Field users can make changes to the sign inventory at or near real time if cellular connections are available or when field users return from the field and place the unit into a networked docking station (or gain access to the network via a wireless hotspot).  The GIS-based sign inventory system is managed using a Flex API administrative dashboard.  The GIS-based sign inventory system uses the ESRI ArcGIS Server Enterprise Advanced framework. Read more of this post

Table queries and other features in ArcGIS Server 10

ArcGIS 10 has lots of new features that have gotten attention, such as editing via REST-based clients (Flex, Silverlight, etc.) and new online mapping features at arcgis.com. For developers who’ve been working with ArcGIS Server for a while, there are more items that will make our lives easier. Among those that have caught my eye are: Read more of this post

Which ArcGIS Server API or ADF Should I Choose?

One of the most common questions I receive from clients lately is: “Which API should I use?”  Unfortunately it is not a simple answer; ESRI provides three APIs and two ADFs which include; JavaScript API, Flex API, Silverlight API and the .Net and Java Web.ADFs.  I answer the question with a combination of questions needed to isolate the answer.  For example: Read more of this post