Tuesday, February 17, 2009

ESRI Geoprocessing in Google Earth

I've heard it for years: "Google Earth is great, no really, I love it, but....it's not analysis."

OK - I guess what you've been saying is that while hundreds of millions of people have downloaded Google Earth all around the world, and have used it to prepare for and respond to natural disasters, find drug farms , protect the rainforest , bring attention to and spatially explain the Crisis in Darfur, even do Imagery Intelligence Analysis - that all of this is "just qualitative analysis."

Tough crowd.....

So despite all of those things, I still hear that Google Earth isn't analysis, and this almost always comes from staunch GIS shops.

Hey, I understand - I'm a GIS guy too. I guess what you're getting at is that unlike the GIS systems you've always used, Google Earth is more of a Geospatial Exploration System, and you want to be able to do some qualitative analysis - some geospatial analytics.

Ah, maybe some Geoprocessing?



Geoprocessing is a GIS operation used to manipulate GIS data. A typical geoprocessing operation takes an input dataset, performs an operation on that dataset, and returns the result of the operation as an output dataset. Common geoprocessing operations include geographic feature overlay, feature selection and analysis, topology processing, raster processing, and data conversion. Geoprocessing allows for definition, management, and analysis of information used to form decisions.[1]



OK, so what if we could extend that Google Earth user experience to be able to leverage your current or future geoprocessing capabilities?

I first saw the potential for this, before coming to Google, when Jack Dangermond and John Hanke co-presented at Where 2.0 last May.

They showed a great little demo of the Google Earth client communicating with the ESRI ArcGIS Server, but you could tell the communication was a little bit of a kludge.

They were using the embedded browser and the center of the Google Earth ?BBOX= NetworkLink information to pull the demo off.

That was before the Google Earth API (3D Google Earth browser plugin) was released.

Now however, we can actually build this application utilizing simple JavaScript and capturing key user events, then passing these events as real geometries over to the ESRI ArcGIS Server JavaScript API and do it all right in the web browser!

Watch a short screencast of the application below:







I first started working on this back at GEOINT in November where I quickly hacked together a side-by-side example of the Google Earth API and the ESRI JSAPI , and then demoed some more refined progress last week at the Google Earth Enterprise User's Conference in D.C.

Durring that demo however, I was still unable to conduct the second required geoprocessing task on any drive-time-rings that were complex or that covered a large area - which was most of them.

It turns out, that there is a pretty significant limitation on geometries that you send Geoprocessing task queries on the ArcGIS Server if you're not running your application on the same server as the ESRI software.

It bombs out if the geometry in the query exceeds 2,000 characters (which is a browser limitation) and the only way around this currently is to complicate the ESRI JSAPI by deploying a proxy in ASP.Net or Java / JSP...

This is a shame, it really makes things more difficult than I'd like them to be for interacting with ArcGIS Server services - I don't think I should have to mess with Tomcat configurations to get things working...but alas, we do for now.

Ok, now off to the ESRI Federal User's Conference - I'll be demoing this application at the Google booth, so stop by and say hello and check it out and tell me how much you hate it in person :)

I promise to have some well commented source code and a link to try out the application up on Google Code ASAP!

Next up - Geoprocessing with some Open Geospatial tools on the backend.....stay tuned.


Friday, February 6, 2009

Is it Just Me, or does ESRI's ArcGIS Server Mashup Challenge Feel Like a Rigged Scam?


For some reason or another, I was toying with the idea of going to the ESRI Developer Summit this year.

Unfortunately, after looking at the agenda it looked less like what I would consider a developer summit and more like an indoctrination into more ESRI tools.

Wish they had a track that was for those that wish to leave ESRI on the edge of their geospatial world; leveraging the ArcGIS Server API's where they are useful, and writing the majority of their code against more open platforms.

Speaking of that, I've been having a lot of fun working with some of ESRI's demo ArcGIS Server API's, and have a pretty sweet mashup I hope to have launched by the time of the ESRI Federal User conference in mid February.

As I was stumbling around the Developer Conference today, I came across an advertisement for the Mashup Challenge (linked in the picture above).

1st Place: $7,000
2nd Place: $3,000

Nice, I could set up a sweet OSGeo Rig with $7k.....

But, looks like I'm not eligible:

3. Eligibility: This Contest is open to all developers who are the legal age of majority in
their country of residency, including Sponsor’s business partners, so long as
applicant/applicant's organization is a licensed user of ArcGIS Server 9.2, ArcGIS
Server 9.3 or a current ESRI Developer Network (EDN) subscriber prior to the
Contest Period, except for those developers who are residents of Burma, Cuba,
Iran, Libya, Malaysia, North Korea, Sudan, Syria, Province of Quebec, and where
prohibited by national, state, provincial, or any other governmental laws or
regulations.

My org isn't a licensed user of ArcGIS server, and we're not in the EDN...bummer.

What would I need to spend to be in the running to win that $7k???

Also, looks like ESRI will own the code that I or anyone else would submit, and use it for whatever purposes they sit fit....like a demo to sell more ESRI licenses....

BY SUBMITTING THE CODE SAMPLE, THE APPLICANT REPRESENTS AND
WARRANTS THAT HE/SHE HAS ALL RIGHT, TITLE AND INTEREST NECESSARY TO
GRANT THE SPONSOR THE WORLDWIDE, IRREVOCABLE AND UNRESTRICTED
RIGHT AND LICENSE TO ADAPT, PUBLISH, USE, EDIT, AND/OR MODIFY SUCH
CODE SAMPLE IN ANY WAY AND POST THE ORIGINAL CODE SAMPLE ON THE
INTERNET OR USE THE ORIGINAL CODE SAMPLE IN ANY OTHER WAY AND
AGREES TO INDEMNIFY AND HOLD SPONSOR HARMLESS FROM ANY CLAIMS TO
THE CONTRARY.


No thanks. - that's a lot to ask for for the CHANCE to win $7k.

Thursday, February 5, 2009

Will Latitude Succeed Where Spatial Social Networking Trailblazers Failed?


When I first saw what is now released as Google Latitude a few months after joining Google, I'll admit I was a little surprised.

I guess my first exposure to this concept was the awesome Loopt presentation at Where 2.0 in 2007.

I was a Verizon subscriber at the time, with a clunky Windows Mobile 5 phone and a pain-in-the-butt Bluetooth GPS and there was no Loopt application or service on my platform.

It wasn't until BrightKite came along that I was able to painfully start sending my position out to the world and make stalking me a little easier for everyone.

I liked BrightKite, and liked how I was able to integrate the position with Facebook and even Yahoo's FireEagle.

I loved the idea of sharing where I was with friends but there was a problem; my friends looked at this technology and said "Dude, that's creepy, I'm not telling you or anyone else where I am all the time."

This is a problem - the geo-nerd in me loved the concept, and my normal friends hated it.

Then, in the spring of 2008, I JailBroke my friend's original iPhone, and checked out a rogue app called Twinkle, a Twitter application with built in GPS / Location support.

Instantly, I saw there was a "Nearby" tab, and I saw dozens of folks around me in San Francisco posting pictures, and Tweeting away.

This JailBroken iPhone App drove me into an Apple-Fanboy frenzy and I was hanging on every single rumor about a then-speculated iPhone 3G with even better GPS support.

Twinkle worked so well, that I dropped Verizon and got an iPhone 3G the first day it was available and installed 2 applications immediately: Loopt and Twinkle.

Since August, I got 1 friend to join me on Loopt, and in that time I've checked the "Nearby" tab in Twinkle several times a day.

I want to attribute the success of Twinkle's Spatial Social Networking success to the simple fact that there was more than one reason to launch the Twinkle app, and really only one reason to launch Loopt.

I was mostly logging into Twinkle to send Twitter updates to my group of followers, but while I was there I always checked out what was being Tweeted around me.

It has been really interesting to watch how the Nearby features of Twinkle are being used by iPhone users (a gigantic user base at this point). One nearby Twinkler in D.C. explained it to a new user as "a chatroom for people you find all around you."

This was a fundamental different concept than what I had been hearing from Loopt and BrightKite, and it is probably why Twinkle has turned in many cases into a creepy hook-up tool as the popularity surged.

So creepy, that I was tricked into clicking on my first NUDE Twinkle user's uploaded picture last week - it was a dude - not cool.

Twinkle is almost too big now, but I think people have a taste for why sharing your location can be cool and have started to accept that there are benefits to sharing your location.

I think many middle-of-the-road technology users will likely still want to be a little less liberal in their location broadcasting than the users are on Twinkle, so features like limiting your location to trusted friends, and multiple tiers of accuracy settings so people don't know EXACTLY where you are but can at least know what city you're in will be well received.

Paul Ramsy was rather miffed by Google's Latitude launch, as he viewed the beta as an innovation killer.

It's been a while since Google brought out anything truly innovative, but they sure have shown themselves willing to copy the services of upstart companies and try to snatch their markets away

However, I think the move is decidedly less evil than Paul perceives it.

Google has shown a clear interest in a broad spectrum of geospatial technologies, and has provided data to hundreds of millions of users that just 4 years ago never would have had access to it.

It only makes sense that many geospatial technologies will be explored by Google and in almost every case be improvised on and enhanced by the company and, even more importantly, the users.

You can't say Google came to the party late, and is trying to snuff out start-ups, they obviously saw some potential for the basic idea when they bought Dodgeball in 2005.....

I an also tell you that I had 5 of the 7 friends I invited agree to share their location with me in the first day of the service's launch.

Why?

Probably because it works with many cell phone models and carriers, and works well with my friend's GMail accounts and their iGoogle, which they are using all day long.

I think Twinkle showed that it requires more than a single-purpose app to get people to really utilize spatial social networking, and I think Google has realized this.

Tying the feature into a users regular use of things like search, GMail, and other Google Applications looks like a winning formula to spatially enable a gigantic user base.

I can only hope that Google looks at the FireEagle and BrightKite models, which did an excellent job of making the location something that was abstracted from a single application or platform, and something that can tie into many other social network platforms, Flickr, Facebook, Picasa, Blogger, WordPress, even FireEagle, Loopt, and BrightKite.

I think they will.