From Cory Eicher

Friday, March 31, 2006

Comparing the Cartography of Google Maps and Ask.com Maps Part 2

It's been awhile since I've posted. What can I say, after the ESRI dev summit I took a bit of a vacation, managing to squeeze in 3 days of surfing while in Southern California. If anyone's wondering, yes the water was cold... Last week I was busy with work, so here I am, what, two weeks since my last post?

Today I'll return to my comparison of Google Maps and Ask.com maps.

Ramp-age
Some of you are probably already guessing that I'm about to 'go-off' on cased line road symbology. More specifically, I'll examine the traditionally tricky challenge of symbolizing freeways and freeway ramps at multi-level interchanges.

Look at these screen captures of the interchange of I-25 and US-6 in Denver. Google Maps flat out does a better job with the representation of this intersection than Ask.com Maps.

1. Accurate Levels

Looking at the satellite imagery for the interersection, the Google map very accurately depicts how the ramps and main routes intersect, or don't. Google is accurate right down to whether or not a ramp/route passes over or under another ramp/route. Seriously, compare the sat with the map, they've done a really good job! The Ask map, well, if you were to believe their representation of the interchange, you'd have cars, lunch trucks, and vespa scooters crashing into each other at each intersection. There's no "level" at all in the Ask maps.

2. Smooth Connections

Another win for Google. The I-25/US-6 interchange is a good example of how you also need to know how to 'blend' symbology when different types of roads intersect, and these roads have different cased symbology. In this case, we have ramps thin, light-colored ramps, intersecting with thicker, darker-colored routes. The Google map does a quite fantastic job, breaks between colors are always a clean edge of a route/ramp, and routes always take preference over ramps. We don't see any 'round ends' of one color poking into another color. The Ask map is quite messy in comparison. Look at this screen capture of the I-25 Zuni St. on/off ramps from Ask for an example of these 'round ends'. Granted, a lot of the messiness in the Ask map derives from their mis-management of levels. Fix this problem, and Ask could be on par with Google for how this aspect of their cartography.

As an aside, one gripe that some cartographers might have with both maps is how dead-end roads are symbolized. Both maps use round end caps, whereas squared-off caps may be preferred. Here's an example from Google.

3. Directional Arrows

One thing that Google has that Ask doesn't are the tiny blue arrows indicating the direction of ramps and route lanes (you'll also see this for one-way streets). To me this is a clear representation, and also 'clearly' useful for following Google's directions, or making your own way on a detailed view of a Google map.

Talk to you soon,

-Cory

P.S - What I'm listening to: www.kexp.org (not to steal someone else's byline)

Sunday, March 19, 2006

Quick Hits From the ESRI Dev Summit Day 2

My NCAA tournament picks score has fallen into the D-range on Yahoo, 66th percentile, but I'm not sure that score is current, and things look promising for my score to rise in the later rounds.

The inaugural ESRI Dev Summit is over and done. I was able to interface with a lot of people and I learned a lot about ESRI technology, so it was a successful trip for me. The conference was was very well organized and, I'd say, things went surprisingly smooth considering that this was the first time around. Yes, some rooms were overflowing, but for the most part, the most popular sessions were given in the largest rooms, so there wasn't much more ESRI could have done on the planning end to alleviate this.

Some thoughts from yesterday, day two:

AM Plenary
  • Two different speaking styles were exhibited by the two guest keynote speakers from IBM and Microsoft. I have to say, I quickly tuned out from the IBM talk. I wasn't drawn into the speaker's speaking style, and the content to me was very high-level, business-y, and treated GIS/location based services as an add-on to a pre-canned presentation. Understandable, but not very compelling to me.
  • The Microsoft representative was a far more polished professional speaker and a true MS evangelist. I was very drawn in and much of the content for me was new, so I stayed tuned in. I have the same criticism of this talk though, GIS wasn't well integrated in the message. There always seems to be a very simple view of what GIS is when talked about in broader contexts.
  • I talked to someone that expected presentations of real world case collaborations between ESRI-IBM and ESRI-MS... Perhaps that was shown in the more focused afternoon technical sessions. I didn't attend these.

.NET Web Applications Tech Session

  • Truly standing room only in this one. You had to get to all the .NET sessions early or you were stuck standing or sitting on the floor.
  • One thing I always see a lot in web demos of ESRI technology... bad maps. Okay, I'm a cartographer, but in this session I saw fusing of multiple services on same map... Map was unprojected/geographic, and in Canada, rivers were shown, but the other layers were missing. When I was at ESRI we were careful to create attractive maps for demos (okay, were were demoing carto fucntionality) , but we were also careful to be inclusive of non-US audiences. I'm wondering how many cartographers or even geographers work on the web dev team at ESRI.
  • I have to be honest, I've heard about AJAX, but I never knew what it stood for: Asynchronous JavaScript And XML.
  • I was pretty impressed but the 'Site Builder' tools that ESRI is providing at 9.2. For someone like me that's new to web development, I'll be starting with these tools.
  • The 'Site Builder' and .NET web ADF seem very unifying at least w.r.t. ESRI services. Its simple to create sites based on all the ArcGIS services (AGS, IMS) and there's also support for OGC style services.... I did however hear a conversation at lunch, two gentlemen relatively new to ESRI technology, wonderiing what the difference is between AGS and IMS... So _that_ question is still around...
  • API yai yai.... I saw so many new APIs yesterday and the day before. I guess it's just the price of doing business as they say, but there's a Mobile ADF API, an ArcGIS Explorer API, and a .NET ADF API. I'd say that its a true challenge to develop and app that deploys in more than one of these environments.
  • Even within web development, there are multiple APIS that developers can work with. ESRI introduced a new general API that can be used, for example, to fuse multiple services and provide feature selection functionality across all services and then to draw the selection in a graphics layer above all of the fused service. It seemed like an interesting thing to demo, but it's also clear that selection/selection drawing is already implemented on the individual service types through their API (e.g. AGS).

ArcGIS Explorer Lunch Session

  • I'm not sure what this even was, because it wasn't on the conference schedule. I have to thank Richard Howell for telling me about it at lunch. A lot of other people didn't hear about it either because there were only 30-40 people filling the seats of a room that I think would've been out-the-door with people were this a first order session.
  • Learned that explorer will support 2D maps in addition to 3D globes.
  • You can customize explorer. Having worked a lot with Google Earth I was glad to hear this. It supports skins, some GUI/application components are configurable on startup, and you can also customize the app and provide custom tools by writing custom tasks.
  • Explorer supports adding local data: raster, KML, shp, file geodatbase. It doesn't support personal GDB or SDE.
  • With Explorer you get standard imagery for free from ESRI, same concept as Google Earth. We were told in the session that the free stuff would be 2-3m resolution for the USA. I'm not sure how that matches up to Google.
  • Explorer has a local cache that allows you to work offline, similar to GE.
  • I was curious about support for billboarding of text and other symbols for 3d symbology... I didn't ask, but I think this is supported in Explorer by consuming an ArcGlobe service that was authored with this symbology.
  • ESRI provides a bunch of default tasks including reverse geocode (click on map/globe and get address) and routing. That's pretty cool...
  • You can save Explorer 'maps' as NMF files with are basically XML.
  • Euan demo'd the basics of writing a custom task, but he didn't get into very much detail at all. As I understand it, developers just write some .NET components: a Task and a TaskUI. There's also a TaskContext (?) object that allows them to talk to each other. There's nothing fancy here, your objects consume the explorer API (yet another API to learn!), you tell explorer where you .dll is through some other file, and then you put the dll at that URL...
  • ...explorer takes care of deployment of your task, downloading the dll from the server location to the client machine and registering it wih the .NET interop. What I took from all this is, that as a desktop/engine developer writing these custom tasks isn't going to be a big jump for me into having to know all sorts of stuff about web application development... we'll see.
  • I'm excited about the possibility of writing custom tasks not just to provide 'tool/command' like fucntionality, but to customize the explorer application (layer ordering/on-off, TOC simplification, etc.). This is hard to do in Google Earth.

Common Operating Picture Tech Session

  • Skipped out of the .NET track to see a session on pretty cool data integration application bringing in real-time from multiple location sources and viewing it. The app was an ESRI employee tracker, and it searched for last known locationn of employee based on flight info in the esri travel database, badge id swipe on esri campus, even vpn authentication activity linked to IP address. Cool stuff, but technical details from the ESRI Impl. Services presenter went way over my head.
  • Learned about a new ArcToolbox tool coming in 9.2 called 'Generate Map Server Cache'... Tool creates tiled raster maps from an .mxd, you choose tiling resolution and number of scale ranges. These get served up by ArcGIS Server. Pretty powerful, but I wondered about dynamic labeling, specifically duplicate labels and 'edge' effects. I talked with Brian about this and he wondered the same thing. I guess that there'll always be this challenge.

Cartograpy Objects Technical Session

  • Mike and Craig (former colleagues of mine) presented a really informative overview of the cartographic subsystems in ArcGIS. As Craig said, there's a lot in this area because cartography in ArcObjects-speak is inclusive of everything from layers, rendering, symbols, elements, maps, and pages, to displays and display transformations, to export and printing.
  • Michael pointed out that it helps to know about about Windows GDI if you're going to get deep into displays and drawing with ArcObjects.
  • I was happy to see the Multivariate Renderer sample that I wrote is still a useful learning tool for ArcObjects developers. I'd still like to see something like this be core ArcGIS functionality. Something to look forward to on the horizon I guess.

Talk to you soon,

-Cory

Saturday, March 18, 2006

Quick Hits from the ESRI Dev Summit

It's early on day two of the ESRI Dev Summit in Palm Springs. First off, are your NCAA brackets looking? I'm sitting right at the 80th percentile in Yahoo, a solid B-...

A few quick notes from yesterday:

AM Keynote
  • Not an overwhelming success, but not a dud either. The start was a bit awkward, as if because it's the first year for this, ESRI themselves didn't know how to kick things off. I'm glad that they basically jumped right in.
  • Scott Morehouse talked about how ArcGIS is architected. He focused a lot on frameworks. I focused on the fact that as a former ESRI employee I used to get paid to hear Scott talk, but now as a conference attendee, I'm the one paying.
  • About a 1/2 hour into the session, I took a look around the room and thought to myself that there were a lot of people there. I don't know, 600-700 people perhaps?
  • ESRI announced that 9.2 will support a type of non-versioned, short transaction geodatabase editing model. This to meet the needs of a lot of users that can't embrace long transactions and versioning for a variety of reasons.
  • ESRI is the geodatabase. Really, this is the first fucntional area that Scott dove into detail on yesterday, and I've also noticed that it's the one area of the software that has something substantially new each release of ArcGIS.
  • About 1 hour into the session I took a look around the room and thought to myself that there were a lot of us males in the audience.
  • I noticed some new faces on the stage, and some new roles. Clint Brown talked about the geodatabase, and ESRI are now calling their product specialists 'product engineers'.
  • ESRI was definitely pushing geoprocessing. It was used as example of how to reuse components from different types of ArcGIS deployments (desktop, engine, server).
  • ESRI demo'd a lot of what's coming in 9.2. I noticed that the audience wasn't really applauding at all after the demos, up until when Ishmael demo'd ArcGIS Explorer. I think ESRI saved the best for last with this. I thought that his demos were pretty interesting, and with the crowd applauding, I think that they agreed with me.
  • I came away from the session wondering how many people 'get' all of the various deployment possibilities with ArcGIS. I know that I'm a little bit dizzied by all the options. I was also excited to see the PM session where they'd be demoing the new Flash stuff.

Technical Sessions

  • I attended Al LaFramboise's session on developing components that work in different ArcGIS products (desktop/engine/server). Things started kind of slowly for my taste, but as he got rolling, I think he did a really good job showing by example how you might develop components once and reused them across different types of ArcGIS deployments. As he said, even if you're only developing for desktop now, your app may move to the web at some point in the future, so you might want to accomodate for this in your architecture now.
  • At the lunchtime .NET SIG meeting, ESRI showed off their .NET IDE integration tools. These are built for VS 2005 and will be released at the same time as ArcGIS 9.2 (at least this is how I understand it). The tools looked pretty powerful. I'm running the express version of VS 2005 currently, and I might think about upgrading just to be able to run the ESRI integration tools... There was at least one comment from the back of the room wondering why ESRI can't officially support VS 2005 now, instead of waiting for ArcGIS 9.2 to do this...
  • Next, I saw Andrea and Mansour talked about ArcWeb Services. I came in not knowing much about this product, and really I was there to see the Flash/SVG support that ESRI is adding. I came away really interested the AWS product actually. It offers an easy way to build applications that use data and services (like routing, spatial selection, location) hosted by ESRI. Clients pay for it based on the number of hits they take. Mansour demo'd the new Flash (support?). I definitely gave him a A for enthusiasm and he was able to show some really cool stuff. I saw online Flash map apps writing using Java Script hitting AWS. he was even able to mash in content from other online sources. ......Very cool. I don't know that much about this technology, but I do know that Flash can be used to create maps and interactive web apps with very 'clean' looks. I find it compelling to be able to more easily create flash content out of a GIS database.
  • Lastly, I saw Mike Shaw, Fred Aubry, and Milosz give a really informative and entertaining presentatioon of the new .NET Mobile ADF. This is part of the ArcGIS Server product (thus also available to developers with an EDN subscription). Basically, they built a library that helps you build apps that work on smart clients like tablet pcs, pdas, and mobile phones that are only intermittently connected to a network. I got a lot out of this talk, and later in the evening I talked to E-911 application developer that was really interested in using this as part of his new product.

So, on to Day 2. Don't worry, I'll get back to my carto critique of Google and Ask.Com maps after the dev summit buzz settles a bit.

Talk to you soon,

-Cory

Monday, March 13, 2006

Comparing the Cartography of Google Maps and Ask.com Maps

Dude, Where's my Freeway?

Go ahead, fire up Google Maps and type in Denver, CO.

Something that jumps right out is that you can't quickly find Interstate 25, the major north-south highway/freeway/expressway in Denver. You see this obviously major route, snaking along the S. Plate, curling around downtown... but it's labeled as US Route 87. It takes some inside knowledge to infer that this is I-25. This is a pretty bad cartographic blunder in my opinion.

So, what's the cause of this problem? Well, the data come from NAVTEQ and many road
segments have multiple names. In this case, some roads are both I-25 and US 87. My opinion is that it's the job of the cartographer or the person that builds the mapping app to label this road as I-25. I'm not saying its easy to do this, but it should be this way.

Ask.com doesn't make this particular mistake. They label the interstate as both I-25 and US 87. In my opinion, this is more correct.

Interesting side note:

I've also thought there was something 'kinda cool' about how freeways in some cities have names. You'll hear these names on local traffic reports, and you may even see green sign along the start of a freeway stretch. But, you usually don't see these names on maps. Perhaps I find this interesting because there's more history in a freeway name than a number. Some examples: 'The Santa Monica Freeway' and 'The Pomona Freeway' in Los Angeles, and the 'Keeler St. Expressway' in Rochester, NY. I also think that named freeways are a weapon for locals to keep newcomers at bay.

Enough Already

Something you notice when looking at the Google and Ask.com maps of Denver is a lot of unecessary label repetition. What I mean is that the I-70 highway shield might appear 3, 4, or 5 times in a given map view. US 6 is another example.

The cause of this... data. Both online map apps use NAVTEQ data, and for smaller scale maps (maps covering larger geographic areas) routes are comprised of many short line features. It looks to me like the NAVTEQ data are just getting thrown straight into some automated labeling software...

...in my opinion, too many are being labeled. What should be done is to label the minimum number of times necessary to make it clear which road is which. So, basically, for these main routes, labeling once between major intersections is what you shoot for.

This is another tough thing (really tough) to nail in an automated system. Sometimes you can help yourself by pre-processing your data, dissolving roads by route number for example, before sending data to your automated labeling processes.

So, we've learned today that high quality labeling can be very difficult in an automated mapping system.

In my next post, I'll continue this cartographic critique of Google Maps and Ask.com Maps...

Talk to you soon,

-Cory

Thursday, March 02, 2006

Oprah does GIS?

Spacing Out
I came across an interesting ESRI support document today: HowTo: Salvage a corrupt shapefile. The title cracks me up. It sounds like something you might see on an Oprah episode... Today's show: salvaging a corrupt shapefile, taming you unruly teenager, er, bloated personal geodatabase, and getting the most out of your relationship...classes...

I'm one that appreciates a bit of irony, and even this technical support document delivers. The document gives you about 15 things to try to fix a dusted shapefile, but it contains this disclaimer: "If the steps in this document do not salvage the shapefile, revert to the back up". Well, if nothing else, this document has inspired me to backup my laptop.

I was actually searching for an answer to this question: "Can a shapefile name contain spaces?". My research is inconclusive. Lots of people/places say that it should not, but ArcCatalog certainly lets you create a shapefile with a space in the name. Seems to me that it'd be bad practice.

Off on a Tangent
Something else, unrelated, that I came across recently. .NET has two Arctan functions. From the Microsoft doc:

Atan - Returns the angle whose tangent is the specified number.
Atan2 - Returns the angle whose tangent is the quotient of two specified numbers.

An interesting difference between the two, is that the return val for Atan is θ in radians where -π/2 ≤ θ ≤π/2 (-90 to +90 degrees). If you're working (like I was) with angles that represent directions in 360 degrees, and you use Atan, you'll probably need to do some extra work with the return val to get what you want... Whereas, with Atan2 the return val is θ in radians where -π ≤ θ ≤ π (-180 to 180 degrees). As far as I see it, this covers you for a full circle. Pass in your cartestian y and x (+ or - values possible) and with Atan2 you'll get the math angle you're looking for, at least I did...

Talk to you soon,

-Cory