Virtual Places

I have just posted Virtual Places, a mashup-style (aka web 2.0) application using Virtual Earth, and various web services... all written using Atlas (of course). Check it out...

During the past few weeks, I've been busy working on an application that I call "Virtual Places". OK, beyond busy, I have been a bit crazy about it (in the sense of thinking about it all the time). Seema put up with that, and also helped me get it out the door today!

On the left is a screenshot of the application. It's a mashup of Virtual Earth, and various web services (including Amazon, Weather.com, Flickr, Feedmap, GeoBloggers, GeoURL, MSN Search and MapPoint). The app brings the concept of gadgets (ala live.com) in the context of a map. Gadgets can not only consume your current view, or selected locations, and bring in interesting data about that spot, but also contribute locations of interest and allow the user to add more, thus creating an immersive mapping experience. Hope thats an interesting intro... now, go check it out here...

Actually, I wrote this application for an internal contest we are having (fingers crossed on that). It started out as a "PhotoOp Locator", but grew into something much bigger, as I got into it over the weeks. I had to leave one feature I really wanted: tagging and sharing of location sets, to sort of build a community around the app... I might get to that in the future.

Now for some techy stuff:
The app logic is implemented completely client-side in JavaScript, with the server hosting services for the script to call back to. I discussed this programming model, in my post on the Atlas programming model. Speaking of which, the script logic is packaged into components, and the application itself is completely declarative, using XML-script to define behaviors and functionality. Once you've played with the app a bit, check out View Source. This has been a very interesting app-building exercise to say the least.

In order to put together this application, I first put together a mapping framework (I guess this is why I am in developer division!) The mapping framework builds on top of the Atlas framework and features a Map control, pushpins, overlays (paths, shapes etc), data-bound pushpin and overlay generators etc. If there is interest, I can blog about it some more.

Posted on Monday, 11/7/2005 @ 10:55 PM | #Projects


Comments

50 comments have been posted.

Loke Kit Kai

Posted on 11/7/2005 @ 11:33 PM
I'm interested! Not only to read about it, but play with it too! :)

DuncanS

Posted on 11/8/2005 @ 1:22 AM
Doesn't work in Firefox

Sander Duivestein

Posted on 11/8/2005 @ 6:50 AM
Quite impressive. I like the user interface. I would love to read more about architecture and the code behind.

One thing I am experiencing is that the app acts quite slow, but I guess this is a webservice calling thing.

Vineeth Raja

Posted on 11/8/2005 @ 7:39 AM
Great app. UI and layout are excellent. Very much interested to know more about the architecture and underlying code.

Recommendations:
* Noticed that toggling of overlays is a bit slow. It would be nice to have user feedback that the app is working on retrieving the data probably by displaying a message.
* Add Firefox support or fail gracefully.

Nikhil Kothari

Posted on 11/8/2005 @ 8:29 AM
Yes, it doesn't work in Firefox (knew about that). Given the amount of time I had on this, this simply couldn't be a focus or priority. So its IE only - the VML drawing it uses is IE only anyway. I also wanted to use filters and transitions which I haven't yet, that are also IE only.

The app is much faster (almost instantaneous) on my dev box - it seems out-bound HTTP calls to various web services are slower from the server where this app is hosted. The pushpin drawing is also a bit slow... sometimes. I have ideas on how both can be implemented to improve percieved speed. They require additional concepts in the core Atlas framework, around asynchronous tasks, not just for network communication, but for everything - as I mentioned this was a great app-building exercise to find out what are the building blocks and tools needed in a client script framework to write apps of this complexity in script. The interesting thing is Atlas will actually make it possible to implement such concepts, whereas doing it in raw script would probably result in spaghetti JavaScript.

Gregor Suttie

Posted on 11/8/2005 @ 10:40 AM
Really Nice app and works well.

Would love to see how its done and learn from this type of app.

Thanks
Gregor

Scott

Posted on 11/8/2005 @ 11:11 AM
Weird, I got a referral to my site from the app but I can't figure out where it came from?

John Coleman

Posted on 11/8/2005 @ 12:54 PM
If it's not web standards, it does not belong on the web. Please take that down. We are programmers, we write for public specs. Need help? See w3c.org.

Nikhil Kothari

Posted on 11/8/2005 @ 1:11 PM
Scott, the app allows people to browse web sites and blogs by location on map. Thats probably where the referral came from.

Tom Raftery

Posted on 11/8/2005 @ 1:34 PM
No support for non-IE browsers and non-Windows OSs? Lame.

By the way, CAPTCHAs are evil - pushing the anti-spam burden back on the commenter is just taking the lazy way out (kinda like only coding for IE).

Andy

Posted on 11/8/2005 @ 1:51 PM
John Coleman - you are an idiot. Feel free to post something you have done that is 1% as good.

Nikhil - great, great work! (once again) You really should be working for a hot Web 2.0 startup and making mega bucks! :)

Kenny

Posted on 11/8/2005 @ 1:58 PM
Exactly - John just don't get it. TCP/IP is the internet and HTTP is the *web*. Any app that uses HTTP is part of the web.

Sandeep

Posted on 11/8/2005 @ 4:22 PM
Nice app Nikhil ! You might want to think about what Andy just said :)

Javier G. Lozano

Posted on 11/8/2005 @ 9:14 PM
This is a sweet app! Way to go to Nikhil! Are you going to share how you did it?

Andy

Posted on 11/8/2005 @ 11:26 PM
Tom - yes, how lazy. Hevean forbid Nikhil should target the 85% of web users that use IE. Besides that, he's already said that the application is a private application he wrote out of interest and for a competition, at his employers (duh) Microsoft. The simple fact that he's sharing it so that others might learn something is something we should be grateful for.

Tom Raftery

Posted on 11/9/2005 @ 1:09 AM
Alan, Nikhil didn't mention at any point in the post that he is employed by Microsoft - but if that is the case, that would certainly explain his inability to code for non-Microsoft OSs.

If this were released into the Microsoft intranet, then there would be no problem with the lack of support for other browsers/platforms but Nikhil chose to release it on the Internet, where Robert Scoble himself recognises that "many of the influentials are using Macs (you only need to look around at a blog conference or an O’Reilly conference to see that’s true)" (see http://scobleizer.wordpress.com/2005/11/04/om-wonders-if-microsoft-will-kill-mac-client-of-foldershare/). Consequently, Nikhil has to expect flak for releasing a platform specific application in an arena where influencers don't use Windows/IE. Maybe if Nikhil mentioned in his post that he intended to support other platforms, but that he hadn't gotten around to it yet, he might get slightly less criticism - however, if you are releasing an application on the internet, it should support as many platforms as possible (i.e. it should be web standards compatible) - hence the deserved roasting Live.com received after its launch.

I notice you conveniently neglected to address the laziness of using CAPTCHAs!

Sander Duivestein

Posted on 11/9/2005 @ 1:28 AM
O boy. Why can' people appreciate the way Nikhil is sharing his knowledge? Negative comments about which browsers this app supports are so inappropriate.

I love the user interface. I love the example how several webservices are integrated into one app. I would love to learn more about the underlying framework and the way Atlas has been used.

It's great to see how you are capable of building such an app in so short time. Way to go! Keep up the good work!

Mike Wade

Posted on 11/9/2005 @ 4:06 AM
First of all excellent work! I am contacting you because this is the best version of Virtual Earth I have ever seen and I am wondering how much you would charge for an exact clone of it with a few changes of gadgets.

My email address in mwade@idsweb.net

Vivek

Posted on 11/9/2005 @ 4:47 AM
Tom,

"Alan, Nikhil didn't mention at any point in the post that he is employed by Microsoft - but if that is the case, that would certainly explain his inability to code for non-Microsoft OSs." - why the snap judgement?
This is a project someone has done with his time outside of his day job and has turned out something really really useful. Why make sweeping statements like the ones you have made?

Yes, Scoble did mention about MACs and Foldershare - have you been to the site? Did you read the rather large print which says that they are in process of supporting MACs soon? BTW the same scoble log also reads today that live.com is supported on Firefox.

Constructive criticism is any day better than cynicism - it is no longer fashionable to be an "Anything-but-Microsoft" moron.

Steve

Posted on 11/9/2005 @ 5:19 AM
This looks quite complex. I hope to see more documentation come out on Atlas. I've walked through some of the quickstart tutorials and I'm seriously impressed about what I see. By the way, is there a tie in to XAML/Avalon and Atlas?

Let me ask for one think as you move forward as a team Nikhil: please concentrate on usability for the developer - I've seen in a few days the strides from asp.net 1.1 to asp.net 2.0 - I hope to see Atlas provide good tools for programming within VS 2k5 - this will be vital to it's success in my opinion.

Xial

Posted on 11/9/2005 @ 8:05 AM
This makes me pretty sad.

I am seriously hoping to see a version of this for those of us who can't/won't use MSIE, though a larger warning at the top screaming, "Firefox, you're boned!" would be quite nice.

On an aside, good grief, but your Captcha times out far too quick to be logical. It's all about padlocks: they keep honest people out.

Mahesh Babu

Posted on 11/9/2005 @ 9:18 AM
Nikhil,
VirtualPlacess is truly very impressive- you are a true blessing to the blogging community. I hope you win your internal contest! I'm very sure that VP will become one of the Microsoft products.

I agree with Sander Duivestein, among others- we have to be thankful to Nikhil for posting such quality tools and articles; seems like he is churning in these tools within days. So, all you critics should give Nikhil sometime before he can fine tune VP to work for other browsers as well- after all, in the process of creating VP, he's trying to get the foundation and a whole bunch of frameworks in place as well. I'm very sure that this will become a world class tool, fit to be a standard on the web.

Nikhil- again, great job and please keep inspiring us!

-mahesh aka jsmags

Steve

Posted on 11/9/2005 @ 7:10 PM
Utterly fantastic. And boo-hoo to the naysayers, this is great work. I think what is most impressive is that it is all done declaratively, which is fantastic.

I hope to see a rich set of Atlas based controls (preferrably with drag and drop capability like the asp.net controls). Even better would be a good UI for interconnecting these controls.

Again, great work, it deserves some attention!

Brian

Posted on 11/10/2005 @ 2:45 AM
One minor critique. I hate the +/- zoom (looks like the one from the commercial API, guessing that is what you used). Is there any way you can use the slider instead? It is much more convenient for quick zooms in and out.

Nikhil Kothari

Posted on 11/12/2005 @ 5:00 PM
Woah - this is definitely a popular post. Thanks for the compliments. And thanks to folks like Andy, Kenny, Sander, Vivek, and Mahesh to bring some balance. One of these days, I should experiment with doing something Firefox specific, and see what sort of out-cry it generates! :-)

Steve: Yes, we will be looking at what sort of design experience we want to create for being able to create such apps, beyond notepad...

Brian: Thanks for sharing suggestions. That was the intent of this post. Yes, I agree a slider for zooming would result in a good experience. Its on my list, and something to get into Atlas as well.

If there are specific questions around what was done, feel free to leave questions. I'll think about what to blog about regarding architecture and/or the map framework.

Steve

Posted on 11/12/2005 @ 8:57 PM
Question for you Nikhil: If I create a fictional map - would this be supported in this map framework?

I 'd like to take a map - define it's dimensions, then place objects dynamically on this map.

ie. let' say it's a map of a fantasy island & I wish to put objects on that map that would tell a story of someone's journey on that island.

Is this possible in the map framework?

ged

Posted on 11/13/2005 @ 5:41 PM
I noticed that all the .xsd files are empty when i tried to have a look at whats going on inside them.
Why the secrecy over the code.

If you could postehm them it would help our undestanding of the application core.
e.g. Location.axd, etc

Nikhil Kothari

Posted on 11/14/2005 @ 10:04 AM
Steve, currently its not possible to provide your own tile source. But its a very interesting idea, which has gotten me thinking. The question I have is are you more looking at a scenario where you have a flat image, that you would cut into tiles, or do you also have a sphere that has been projected and then cut into tiles. The latitude/longitude calculations in the core map from Virtual Earth take curvature etc. into account, so it wouldn't be usable for the former scenario directly, even if you change the tile source.

The server-side files aren't hidden from a secrecy perspective. They are server-side files, and the server doesn't serve them up. I am looking into doing a map/mashup post using Atlas, and in that I'll provide full source as a zip.

Steve

Posted on 11/14/2005 @ 1:54 PM
Nikhil, for my idea it would be a flat map (an image, ie. .jpg or .gif)

John

Posted on 11/14/2005 @ 2:44 PM
Nikhil, did you win the contest? I heard today's the contest result day. If you didn't win, I wanna see which application is better than yours.

Vish

Posted on 11/14/2005 @ 9:34 PM
Really nice app...

Bob Campbell

Posted on 11/18/2005 @ 4:59 AM
Terrific use of technology. I wish I could say I'm surprised by the negative comments, but I'm not, they're is all too familiar. It is interesting to note that Microsofts use of non-standard objects (xhtmlhttprequest) has ended up as a significant part of AJAX. Who knows where this will end up. Thanks!

Bob

Nikhil Kothari

Posted on 11/21/2005 @ 5:55 PM
John, I did win 1st place! Waahoo :-)
The results were announced just today.

Ayesha

Posted on 11/21/2005 @ 9:24 PM
Congrats Nikhil !!!!!!!.
Really nice app .Keep It up .One thing wht i noticed is the photo's are'nt working properly .Would like to know how did u use all these webservices .

Felix Zhang

Posted on 11/23/2005 @ 4:53 AM
Great app! And congratulations for winning the contest, u rock! I also want to learn more about how u made it, as u mentioned u will release a src zip later or arch. map or so on, please inform me about it if u can, but i'll also check back ur blog often!

Nice job!

Meenakshi

Posted on 11/24/2005 @ 12:04 AM
congratz for winning the contest...

really cool app. but i would like to know how you access the webservices from your application.

john

Posted on 11/25/2005 @ 6:25 AM
I was just wondering how you found these accessible web services, does someone have a list of companies providing open web services or did you just stumble onto these ones.

a really amazing app by the way, very interested in what atlas can do

oVan

Posted on 11/25/2005 @ 7:20 AM
Why not replace the VML code with the open SVG standard? VML rendering is limited to IE, and is very slow compared to Adobe's SVG plugin.

Josh

Posted on 12/5/2005 @ 9:15 AM
Nikhil,
This is a great project. I have a question about the overlays you have done. Can you provide me with links or any examples to your implementation. Thanks

Mark

Posted on 12/9/2005 @ 10:57 AM
Wicked implementation of Atlas. Any chance to share the source with us?

thx

Beth Patton

Posted on 12/20/2005 @ 7:02 AM
This is fantastic. I have now switched permanently from Google Maps to this.

Only one thing I have an issue with is that you seem to have to be very specific in the format of the address. For example, if you don't include the comma between the city and state, it cannot find the address.

Nice work. I cannot wait until you find some time to add the community peices. I see a lot of potential in that.

Nikhil Kothari

Posted on 12/21/2005 @ 7:58 AM
Just a quick note - I plan on publishing the source or some trimmed version of it to demonstrate writing mashups with atlas - hopefully in the early part of January. Please stay tuned, and once again thanks for all the compliments!

Beth, the address lookup is done via MapPoint - I used some very basic APIs - they might have more enhanced address parsing capabilities. They also have that capabilitiy for addresses outside the US, but I didn't make use of those additional databases. Check out their SDK docs on MSDN. Good luck!

Scott

Posted on 12/27/2005 @ 1:59 AM
It used to be the linux guys who would start holy wars for no reason and go around with a huge chip on their shoulder. Now it's the firefox guys. NOWHERE does anyone claim this app is for public use and to meet the needs of all web browsers or support them. As for the anti-captcha comments, many applications use them and to stoop to bashing Nikhil for that is only because you are here to bash in the first place. I'll admit the timeout is way too quick.

When developers have a self-righteous bent regarding how they think people should do things, everyone suffers. I'll grant that standards are great. I wish I could find one single browser that actually adheres to all standards. I guess the firefox fans think their browser does. It does adhere to some of the standards, no doubt there.

I'm not posting this as a MS fanboy. Actually my preferred computer for personal use is my mac running OS X. I do program web applications using asp.net and vs.net 2005 (on my PC of course) which I love. And on the mac, I use Safari, not Firefox. Just to give the firefox fanatics something to rave about.

Courtney

Posted on 1/5/2006 @ 2:35 PM
Very neat app Nikhil! Congratulations on winning the contest. I can't wait to read more from you on some of the architectural details. I'm a little bummed that it doesn't work in Firefox too, but only because I'm looking to learn some of the techniques here to put into my own app that has to work across browsers. I can relate to the "fun" involved with getting non-trivial webapps to play nice with different browsers. ;) Keep up the good work.

Stefano Pogliani

Posted on 2/22/2006 @ 10:27 AM
I see in your map the "Plazes" for my town. However, I have enabled my Blog with GeoURL tags.. But I do not see it.
Could you please help me in understanding why?

Thanks a lot

BTW: Congratulations for this wonderful mashup

GoodBikes.org

Posted on 2/28/2006 @ 4:44 AM
Hello!! Thanks For This Tool Nikhil Kothari, From Spain, Malaga, You Are Welcome to the "Costa del Sol" if you like a good bicycle here you have one waiting for you
write us at goodbikes your home in the Sun Coast :) A Lot of Regards!!

chrome

Posted on 4/4/2006 @ 7:35 AM
Hello, I can't get virtualplaces to show the maps. Everything appears to load correclty in my IE 6 except for the map. I can add places but it just puts a pushpin on a blank screen (no map). Do I need to tweak o rupgrade IE to get it to work. Is the application not working currently? Is there a commercial version of this?

Thanks

Raymond Dalton

Posted on 5/11/2006 @ 2:19 PM
I have been hyped about this all week. I have watched the Channel 9 video, researched other people who have done some similar stuff, and in general looked for code examples, so that I can try it out and mess around and see what ideas I come up with. Speaking of which, you said:

"Just a quick note - I plan on publishing the source or some trimmed version of it to demonstrate writing mashups with atlas - hopefully in the early part of January. Please stay tuned, and once again thanks for all the compliments!"

Is that available anywhere yet? Seeing people like you post such interesting and inspiring things online really makes me glad that I decided to become a programmer.

Don't let the people who post stupid stuff get to you. They just don't get it. This isn't about Microsoft or Firefox or standards boards. It is about doing really interesting things, seeing what is possible and showing people, look at this really cool thing I did, awesome huh? Now you try...

Raymond

Xavier

Posted on 5/19/2006 @ 7:52 AM
I have tried in several computers but none of them shows the maps. The rest of the app rocks!
I'll try to learn how to program with Atlas although the first drawback I can see is the overwork for the browser compared to a plain aspx page. Anyway, congratulations.
Xavier.

JustJoe

Posted on 7/25/2006 @ 2:49 PM
I saw the MSDN TV article first, and was interested in seeing the actual site. I’m glad you’re hosting it, and now that I have seen it running I’d like to see the source code. You posted that it would be available but I haven’t seen it yet.

As a side note; about Virtual Places not working in FireFox, man you guys are weak. Back in the day; when you saw a program that didn’t work on your platform, you didn’t cry to the developer. You wrote a version for yours. I converted many Apple II+ programs to the TI 99/4 (I never said I wasn’t lame).
Joe
The discussion on this post has been closed. Please use my contact form to provide comments.