Pages

Tuesday, December 11, 2012

ArcObjects or the ArcGIS Runtime SDKs for Java and WPF—which is right for you?


There has been lots of  excitement about building custom applications for the desktop with the new Runtime SDKs for Java and WPF, there are also important questions from our developers, like “Should I migrate from ArcGIS Engine?” and “If I migrate, what pieces of my code will I need to rewrite?”
New developers are also asking questions, like, “Since both ArcObjects/ArcGIS Engine and the new Runtime SDKs support development of custom desktop GIS applications, which is right for me?”

If you’re migrating

Esri will continue to have updates to ArcObjects. Version 10.1 was released earlier this year and 10.1 SP1 became available in October.
If your application is in Java, you’ll likely want to take advantage of the overwhelming benefits that ArcGIS Runtime SDK for Java has over ArcObjects for Java. To help you with this effort, here’s the first article in a series to help make the move to ArcGIS Runtime.
If your application is in .NET, the decision of whether or not to migrate should depend on the capabilities in your existing application that you want to keep. Not all the capabilities of ArcObjects is supported by the Runtime SDKs, so you’ll want to have a good understanding of what is and what isn’t supported before you migrate. If you’ve created any custom ArcObjects, such as custom renderers, custom data sources, or custom symbols, you cannot migrate those to a ArcGIS Runtime application.

If you’re starting fresh

Below is a list of capabilities that you can include in your custom desktop application if you are programming with ArcObjects. These capabilities are not available in ArcGIS Runtime SDK for Java and WPF at this time, so you must use ArcObjects to get them:
  • 3D visualization. Although you can perform 3D analysis in the Runtime SDKs, you cannot display 3D in your application at the current release.
  • Data management and complex features. If you want your application to create, manage, or maintain geodatabases (whether file or enterprise) you must use ArcObjects. Runtime SDKs support reading all aspects of the geodatabase and editing/updating simple features only. Editing of complex features (parcels with topologies, the parcel fabric, network datasets, and geometric networks) is not supported in the Runtime SDKs but is supported in ArcObjects.
  • Building a map that is a map authoring product or cartographic product requires ArcObjects. For example, if you have your application start with a blank screen, have the user browse for data, symbolize the data, set up the labeling, rendering, and scale dependency—this all requires ArcObjects.
  • Some extensions are not available in the Runtime SDKs. Schematics and Data Interoperability are available only with ArcGIS for Desktop and ArcGIS Engine.
Here are some resources to help you get started with ArcGIS Runtime SDK if you are new to ArcGIS or an existing ArcGIS Engine developer.

Tuesday, November 20, 2012

Improvements to product library at 10.1 – building business rules


Manage your field configurations and associate batch jobs directly in the Product Library window
In a previous blog, I outlined how product library’s user experience has been simplified at 10.1. Today I’ll explore how we have made it much easier to build your business rules. When using product library for managing your editing, there … Continue reading 
Posted in Editing | Tagged  | Leave a comment

Accelerating map cache creation

It can take a long time to create an ArcGIS Server map cache that covers large scales over a broad area. This post describes some of the biggest factors that affect caching speed. You can read other more detailed considerations in Tips and Best Practices for Map Caches.

Use local file geodatabases

If you can place a copy of the source GIS datasets on the server, you’ll notice greater speed and stability during cache creation. The caching process makes thousands or even millions of requests for data, and if those requests don’t have to leave the machine, your tiles will draw more rapidly.
The ideal approach is to place an identical file geodatabase at an identical path on each GIS server machine in your cluster. Register the file geodatabase’s local folder with ArcGIS Server as a data store item. Within your map document, use local paths to the data.

Avoid projection on the fly

For the best performance, project your source data into the same coordinate system as your map to avoid projection on the fly. People naturally hesitate to put their working databases in a projection like Web Mercator. However, the data you put on the server could be a one-way replica of your production database that might only exist for the purpose of creating the cache and satisfying user queries.

Choose antialiasing levels carefully

Antialiasing is a technique that ArcGIS uses to smooth the edges of lines and labels so they don’t appear pixilated. Text antialiasing has little impact on performance, but feature antialiasing is a computationally intensive action that slows caching.
Applying at least some level of feature antialiasing can make your vector map look more professional. Just be aware that each increase in antialiasing quality can greatly extend the amount of time it takes to make a cache. The Fastest or Fast settings are good enough for most caches. Avoid the higher quality settings such as Best unless your own test caches have shown you need that level of quality.

Fully utilize your CPU without overworking it

For the fastest tile creation, your CPU should be working near 100% during the tile creation, but should not be maxed out at 100%. You can watch your system activity using tools like Windows Task Manager or Performance Monitor.
Because each map is different, achieving this level of CPU usage may require some trial and error with your cache settings. There are two major settings that affect how much server power you dedicate toward caching:
  • The maximum number of instances of the CachingTools service that are allowed to run on each machine in the cluster. A good starting value for this is n + 1, where n is the number of CPU cores in a typical machine in your cluster.
  • The maximum number of instances of CachingTools that your cache job is allowed to utilize for the cluster as a whole. A good starting value is the default you see when you run Manage Map Server Cache Tiles. This reflects the number of machines in your cluster and the maximum number of CachingTools instances each is allowed to run. If you anticipate adding other GIS server machines during the caching job, enter -1 to remove the cap on the number of instances.
The values recommended above are just a starting point for your own testing and iteration. See Allocation of server resources to cachingfor more details and formulas for setting these values.

Create only the tiles you need

You don’t always need to create tiles across the full extent of your map at all scales. Some tiles are visited frequently and other tiles are never visited, especially in places where data is sparse at large scales.
Before starting a cache job, carefully plan which geographies and scales you must pregenerate and which tiles could be generated on demand (or displayed with a “Data not available” tile as described here). The small scales aren’t a problem because they require relatively few tiles. It’s the large scales that require a more strategic approach.
Create a feature class to delineate the most interesting and important areas of your map. When you cache your large scales, use this feature class to constrain tile creation. A feature class with many thousands of vertices can slow down the caching tools, so you may need to generalize it first using a tool such as Simplify Polygon.
With some planning, you can avoid creating thousands of tiles outside your geography of interest or tiles devoid of features.

More tips

Finally, consider these additional tips for accelerating your caching:
  • Avoid the exploded format cache. It takes longer to generate and is more cumbersome to move around. Stay with the default compact format.
  • Sometimes antivirus software can drain resources from the cache generation, especially if the new files are being scanned at creation time. If you suspect that antivirus is competing with ArcGIS Server for memory or CPU resources, get permission from your system administrator to temporarily disable or suppress the antivirus while you build the cache.
  • If speed is more of a problem than amount of required disk space, avoid the optimized PNG format cache introduced at ArcGIS 10.1. This format is great for reducing cache size, but it can take longer to build because it must determine the optimal bit depth for each tile. Consider using the MIXED format as an alternative.
  • When you analyze your map document before publishing, fix as many of the performance warnings as possible. For example, you will see an analyzer warning if your dataset does not have a spatial index. Taking the time to build a spatial index could result in faster map service draw times and tile creation.
Contributed by Sterling Quinn of the ArcGIS for Server development team
Posted in ServicesWeb | Tagged  | Leave a comment

Improvements to product library at 10.1 – building business rules


Improvements to product library at 10.1 – building business rules

Manage your field configurations and associate batch jobs directly in the Product Library window
In a previous blog, I outlined how product library’s user experience has been simplified at 10.1. Today I’ll explore how we have made it much easier to build your business rules. When using product library for managing your editing, there … Continue reading 
Posted in Editing | Tagged  | Leave a comment

Sunday, November 11, 2012

ArcGIS 10.1 and Windows 8


ArcGIS 10.1 and Windows 8

Microsoft has recently released Windows 8 and we have just released ArcGIS 10.1 Service Pack 1.  I’m pleased to announce that Windows 8 and Windows Server 2012 are now supported operating systems for ArcGIS 10.1 SP1.
Posted in Analysis & Geoprocessing, Developer, Mapping | Tagged , , , , , | 1 Comment

How to build an Apple Map app for iOS using the ArcGIS Runtime SDK for iOS


How to build an Apple Map app for iOS using the ArcGIS Runtime SDK for iOS

photo1
With the new release of iOS 6, Apple replaces the Map app from Google maps to create its own map application. Even though the new application from Apple has exciting new features, like 3D maps, some users are complaining about … Continue reading

Thursday, August 30, 2012

Consuming WebMaps from ArcGIS.com with ArcGIS Runtime for iOS


Screen Shot 2012-08-17 at 9.43.43 AM
ArcGIS Online brings the concept of WebMaps, a ready to use intelligent map that includes a way to “mashup” of all your data. WebMaps are highly configurable for any user wanting to tell a story or share their geographic information. … Continue reading 

Wednesday, August 29, 2012

2012 Esri User Conference impressions from the Flex development team


The Esri User Conference in San Diego, CA is always a great opportunity to learn about new Esri technology trends, reconnect with your colleagues, and meet some new folks in the community. This year was no different and we would like to summarize some of the Flex-technology related news and announcements from this year’s conference.

Open-sourcing of Flex SDK

Last November, Adobe announced the Flex SDK would become a community-driven open source project.  This summer the first open-source  Flex SDK version was released by the Apache Software Foundation project, and recently Adobe announced the beta release of the next Flash Builder.

Esri and Open Source Software: More Please


A few weeks ago GeoIQ joined Esri and, augmented by a few other Esri employees, we formed the Esri R&D Center, Washington DC, a.k.a the DC Dev Center. We immediately launched into action and are having fun brainstorming with our colleagues about what sort of technology and tools to explore. Transitioning a whole company at once was a new experience, and we’ve outlined some of our initial plans. Part of our transition involves working closely with our Esri co-workers to square up some goals for the future in terms of what makes the most sense for Esri as a whole and for the geo-developer community in particular. The DC Dev Center crew is a somewhat outspoken bunch of developers who are passionate and devoted to their craft and from early on it became clear where our experiences and passions could make a quick and significant impact.
At GeoIQ, we were heavy users of open source software and contributed code back to the community when we could. However, we feel that we could have been better about contributing code back to the community and developing more in the open. This is one of the areas where we as developers, evangelists, and geospatial uber-geeks feel that we can make a strong impact — improving Esri’s participation in and contributions to open source. Esri has always hosted open code and samples in a variety of ways, but more can be done. Focus and motivation needs to be improved, and Esri is now making it a priority to improve its open source participation.
More of Esri’s code should and will be open sourced in the coming days, weeks, months, and years. Patience is needed, of course, but we’re on our way. Here’s the basic plan: make it easy for Esri employees to write and share code in an open space and identify what products can and should be open sourced. To start, this means giving developers access to the appropriate tools, resources and space they need to collaborate with each other. This really just means Esri is beginning to leverage Github.
We will centralize Esri’s open code as much as possible, but again this will take some time. We are encouraging the sharing of ideas, experiments, and new code all to be developed openly on Github. We want Esri developers to have faces, be active on Github, and work more closely with those outside the company. We will embrace open source development as much as we can. You’ll see more code from Esri on Github. You’ll see more collaboration with other software projects. You’ll see Esri forking code and issuing pull requests on your repos – we are excited to be launching these new activities.
Developers who want to share ideas and code with us are welcome and encouraged to issue pull requests and file bugs and features on the repos. We’ll be gauging our success in this effort by the level of collaboration between internal developers and others who are willing to collaborate. Again, the Esri development team is excited to see how this plays out over the next few months. We know perceptions die-hard. This initiative is about a cultural change that has internal buy-in at all levels. Esri wants to push the limits of our industry and lead through openness and sharing where other companies have failed to see the benefit. We want to see progress and innovation in geospatial technology through collaboration with developers who share different perspectives and insights.
We’ve got the ball rolling already with several repositories up and running on Github. Esri’s presence in Github centers around two separate accounts: http://github.com/esri and http://github.com/arcgis. The “esri” account will house (host?) code that is meant to be more freestanding and generic. Code that a has broad reach to very more non-GIS community like visualization examples, solutions and various other scripts will all live there. The “arcgis” account will house open source code related directly to the “ArcGIS Platform” and have repositories for things like ArcGIS Online templates and ArcGIS Desktop extensions. The structure of all the code and repos will grow and evolve as Esri places more code on Github.
More open source code and more collaboration with others is a good move by Esri and only good things will come from it. You’ll be surprised by some of the code and projects that’ll be open sourced soon. As usual, hearing any comments, suggestions or opinions would be great in helping Esri shape the future of its open source effort.

Tuesday, August 28, 2012

Applying media queries to your ArcGIS API for JavaScript applications


Smartphone and tablet usage is quickly usurping the desktop.  Targeting the dizzying array of browsers, screen sizes and devices in a market experiencing hardware fragmentation is one of the challenges developers encounter.  Although responsive web design does not offer a panacea for all scenarios, designing your web mapping applications to be mobile-friendly using this technique can provide an improved experience to your end-users.
CSS3 media queries enable developers to selectively style their pages based on properties (device width or height, resolution, orientation) of the browser where the page is being rendered.  For instance, you can now choose to style a page differently for a small screen such as smartphone versus a slightly larger screen such as a tablet, or the desktop.
Using the Legend Widget sample as a starting point, I will show you how I modified an ArcGIS API for JavaScript application to support tablet (768 x 1024px) and smartphone devices (320 x 480px).

Friday, July 20, 2012

Esri Maps for Office 1.0 release now available!


We’re pleased to announce the release of Esri Maps for Office v1.0 powered by ArcGIS Online.
Esri Maps for Office is a powerful add-in for Microsoft Office that brings the capabilities of Esri’s ArcGIS Online mapping platform to Microsoft Excel and Microsoft PowerPoint users.
With Esri Maps for Office, you can easily create interactive maps of your organization’s data, enabling you to see patterns that graphs and charts cannot reveal. Any of the interactive maps you create can be embedded in PowerPoint, so you can make your presentations even more impactful. And by leveraging ArcGIS Online, you can quickly and securely share your interactive maps in web pages, blogs, and mobile apps as well as with ArcGIS users.
Within Excel, it takes just a few seconds to create an interactive map of your data. You can map your data regionally, such as by postal code, create point maps that show individual locations, generate heat maps to show where there are concentrations of points, and more. Esri Maps for Office gives you broad control over styling your mapped data, enabling you to make the important facts stand out.
In PowerPoint, maps can be inserted as static images or as “live” maps that you can interact with during your presentations. Live maps allow for zooming in and out, moving around the map, and displaying “pop-ups” with additional information about map features when you hover the mouse over them.
Several updates have been made from Beta to v1.0 to improve the overall performance and experience, including:
  • Improved user experience for adding Excel data
  • Export your point data enriched with location information
  • Notification of errors when finding locations
To install Esri Maps for Office, visit the Esri Maps for Office page and click the Download link on the right under Quick Links. If you currently have the Public Beta version installed, you can install v1.0 simply by running the setup.
If you are traveling to the International User Conference in San Diego next week, please come by and see us at the Location Analytics Island in the Esri Showcase!
~Esri Maps for Office team

Wednesday, July 11, 2012

Using Yahoo! Pipes to create dynamic map layers


Yahoo! Pipes are a handy way to aggregate web feeds and other information from various sources. One way to think of Pipes is as a way to create data/information mashups, just like we can create ArcGIS Online web maps by mashing up a variety of map layers. An interesting aspect of Pipes is that we can leverage them in the context of our ArcGIS Online web maps, and use them to create dynamic layers using URL-located KML or CSV files as mappable information sources.