Our Friends

MP2K Mag

Recent Articles RSS

Fun with IE Image Filters and Virtual Earth

Internet Explorer offers several filters that can be applied in CSS to images. This Article is a fun look at how some different effects can be applied to Virtual Earth.

Use multiple instances of Virtual Earth V5

One possible application of Virtual Earth, other than the classic application of one instance, is the use of multiple instances of VE, inside one single page. With the last release of VE, Microsoft has introduced a new functionality about mouse and keyboard events. Specifically, you can use VEMap.AttachEvent Method, to synchronize one or more instance of VE with one principal instance.

Customizing Route Pushpins in V5

Using Virtual Earth version 5.0, you can create driving routes with automatically generated pushpins along the route that contain the driving itinerary inside the pushpin bubbles.  After a VEMap.GetRoute call is made in Version 5.0, a VERoute object is returned.  The VERoute has itinerary directions but has no information as to the co-ordinate of the route pushpins and no access to their InfoBox descriptions.  This article will discuss how to manipulate these pushpins and generate your own version 5.0 route pushpins.

Browser Debugging for Virtual Earth

Tracing program execution and debugging code are two of the major challenges of developing JavaScript applications. These challenges are especially apparent in Virtual Earth, which is essentially a large obfuscated JavaScript library with limited documentation on available methods and no documentation on how the backend API works. An additional challenge when debugging Virtual Earth applications is deciphering all the CSS classes and HTML elements applied in order to display the Virtual Earth map. Fortunately, there are many available debugging tools that can be used to help you understand the back end of Virtual Earth applications. In this article, we will look at two popular debuggers for browsers that are compatible with Virtual Earth: the Internet Explorer Developer Toolbar (for Internet Explorer) and Firebug (for Mozilla Firefox).

Free reverse geocoding

In this article Mo Majad shows how to impliment reverse geocoding in Virtual Earth. Reverse geocoding is the process where a latitude and longitude pair is used to calculate the physical address, this service is not part of virtual earth and is one of the most requested features.

Other Recent Blog Posts - Virtual Earth Developer Blog RSS

Announcing Live Search Maps India on Virtual Earth Developer Blog

Thursday, September 18, 2008

We've just launched the new Live Search Maps India site and for a v1 it is SUPER robust. Check out this list of features:

Street Maps for 9 important Indian cities Delhi, Mumbai, Chennai, Kolkata, Bengaluru, Hyderabad, Pune, Ahmedabad, and Jaipur and National Road Network of India with roughly 20,000 cities/towns/major localities (as points on the map). Political Map of India with important geographical features that includes national roads connecting around 20,000 Indian cities are on the offer. Highlight is the detailed maps for 9 important Indian cities as mentioned earlier. Within these 9 cities, important places likes monuments, restaurants, hotels are also presented as icons in the maps. Maps of supported cities has been stitched with the national road visually and navigationally.

Location Search ? Global (one need not type the city name), context-aware (i.e. ranking of results considers the map view), error-tolerant (corrects the typos, expands the important abbreviations) and flexiblesolution to find complete or partial address, roads, localities, landmarks and places of general interest.

clip_image001

One can search for geographical things like address, roads, localities, landmarks and places of general interest like monuments, restaurants, hotels etc. for the 9 supported cities. Apart from this one can search for important geographical features and around 20,000 cities/major localities in India. However details for these cities are at much lower level. If an address can only be partly searched, it will drop the unmatched part and return the part result. Search is typo-resistant and tries to expand/abbreviate roads and locality wherever possible.

?Blr? will take you to the city of Bangalore. Short city names like Blr, Hyd etc. are supported

While you are in Bangalore (i.e. the map area of the browser is completely filled by the map of Bangalore), ?MG Road? will show the MG road on the map of Bangalore and other MG Road (s) in India as suggestions. Location Search is context aware.

?Indira Naga? will result in suggestions for Indiranagar, Bangalore (fuzzy match) and one can click to go to there.

While you are in Hyderabad, ?Bangalore Golf Course? will result in other golf courses as suggestions with the pushpin on the ?Bangalore Golf Course, Bangalore? at their exact position on the map.?

?Airport, Delhi? will place the pushpin on the ?Indira Gandhi International Airport, Gurgaon Road, New Delhi, Delhi? at their exact position on the map.?

Address ?#643, Janu's Residency, CMH Road, 100 ft road, blr? will match to? ?Chinmaya Mission Hospital Road, 100 Feet Road, Indiranagar, Bangalore, Karnataka, India?? as a suggestion. It dropped the part of address that it did not understand, expanded the acronyms and found the required road intersection.

While you are in Bangalore, ?Begumpet? will result in Begumpet, Hyd. One need not type the city name while searching for localities.

Business Listing (Yellow Pages) Search - This allows us to find businesses listed with us. Click Business tab and specify what (e.g. ?Petrol Pump? in first box) and where (e.g. ?Indira Nagar? in second box) to get the business listings sorted according to distance from the location of search (i.e. Indira Nagar, Bangalore)

clip_image002

Click the Business tab. Under this one can find businesses by specifying either the name of the business or the category in first text box and address, locality, road or city in second text box. Search will return all business entities ranked/sorted according to the distance from the initial search location. The location of these results on the map (referred to as Geocode) are approximate and we are working on improving the same.

?Petrol Pump? (first text box), ?Indira nagar? (second text box)? will result in all business entities along with their address, phone number (wherever applicable) etc. ranked/sorted according to the distance from the initial search location (i.e. Petrol Pumps near to Indira Nagar, Bangalore will be shown first and so on).

?Indian Oil? (first text box), ?Indira nagar? (second text box) will result in all Indian Oil petrol pumps in Bangalore that are listed with us.

Routing/Driving Directions

  • Intra-city visual driving directions
  • Intercity integrated routing (detailed driving directions inside the cities having Street Maps and normal driving directions on the National map)
  • One-click driving directions

clip_image006

Under this, one can route from a given source to a destination. Source and destination can be specified in multiple ways ? by right clicking on the map, or by hovering over the search result icon displayed on the map or by hovering over the pushpins in the collections or by clicking directions link from menu and typing in the required addresses/locality/places/road. Source and destination can be any city/locality/place/landmark in India within 15KM of distance from any road. Clicking Reverse link at the bottom will swap the start and end point and will compute the route. Selecting Shortest Distance radio button will compute the routes for the shortest distance between the two points.

While you are in Hyderabad, From ?CMH Road? To ?Brigade Road? will result in visual + textual driving directions from ?Brigade Road, Bangalore? to ?CMH Road, Bangalore?.

While you are in Hyderabad, From ?CMH Road, 100 Feet Road? To ?Mysore? will result in driving direction from ?intersection of CMH Road, Bangalore and 100 Feet Road, Bangalore? to ?Mysore? with detailed driving directions within the city of Bangalore (for which we have Street Maps).

Share - User can share (by selecting ?Send in e-mail? from ?Share? Menu) his various search results, driving directions, collections etc. over email.

Print - User can take print out of the maps, driving directions, search results.

Collections - One can create collections of pushpins, custom drawings on the maps, routing etc. and save it against a Windows Live ID for viewing later or sharing it with others.

Namaste.

CP

Virtual Earth Imagery Release - September, 2008 on Virtual Earth Developer Blog

Thursday, September 18, 2008

For those of you who follow the imagery releases, there was no release for August. September, however, is now live and contains the following 46TB of imagery and vector updates.

Orthos

  • Yakima, WA
  • Springfield, MO
  • Spokane, WA
  • Portland, ME
  • Grand Rapids, MI
  • Billings, MT
  • Minneapolis, MN (UltraCam Refresh)
  • Seattle, WA (UltraCam Refresh)
  • Las Vegas, NV (UltraCam Refresh)
  • Phoenix, AZ (UltraCam Refresh)
  • Tampa, Fl (UltraCam Refresh)

image

Vector

  • Vector overlays for Navteq and MDS data sources for orthos and Bird's Eye
  • All mobile tiles
  • New British Isles Map style

image

3D

  • Tampa, FL

image

CP

Virtual Earth and Microsoft Commerce Server on Virtual Earth Developer Blog

Wednesday, September 17, 2008

If you've visited us at the Microsoft booth at the Shop.org conference, you may have seen the Microsoft Virtual Earth demonstration application illustrating Microsoft Commerce Server 2007 and Virtual Earth working together. The concept for the application is based on inventory data in Commerce Server being used to help end users find the nearest location that carries the item you're searching for - an advanced store locator and inventory search scenario.

image

The demonstration application is posted online branded as "Soundshift Multi-Channel Retailing." To use the application, you'll want to go to the "stores" tab and enter '90210' in the address box. You'll be presented with the results around the Los Angeles area inclusive of custom pushpins, custom EROs and how 'bout that custom navigation bar? Nice. In the "Directions" tab you can get directions, find gas stations along the route, find coffee shops along the route, show traffic, print the directions, send to email, and send to mobile. A pretty robust application, eh?

So, to most of you this is just a plain old store location - whoopie! The important piece is what happens behind the scenes. The folks at Cactus Commerce built the implementation and wrote a white paper describing how to leverage both Windows Live ID and Virtual Earth within Commerce Server. The document provides architecture and code details of how this can be done using the Commerce Server's extensibility model. From the document, you'll find the architecture and code level instructions for integrating the following features into Commerce Server - geocoding a user's address, finding the nearest stores, retrieving items in the basket, getting inventory status, and adding store and inventory information to the Virtual Earth map.

image

Geocode User?s Address

The first step in locating nearby stores is to geocode the user?s address to latitude and longitude coordinates. You can use the Find method from the Virtual Earth?s Map Control to resolve the address. For simplicity, we will assume only one result is returned:

function findAddress(address, map)

{

// Call VEMap.Find() to geocode address

map.Find(null, address, null, null, null, null, false, false, true, true,

findAddressCallBack);

}

// Call back function for VEMap.Find()

function findAddressCallBack(thelayer, resultsArray, places, hasMore, veErrorMessage)

{

if(places != null && places.length >0)

{

var latitude = places[0].LatLong.Latitude;

var longitude = places[0].LatLong.Longitude;

}

}

Retrieve Nearby Stores

Once we have the user?s geocode, we can implement the logic to find nearby stores within a given radius:

private void GetNearbyStores(ProfileManagementContext profileCtx, double latitude,

double longitude, double radius, List<Store> stores)

{

// Retrieve store list

DataSet dsEntities = profileCtx.GetSearchableEntities();

SearchClauseFactory scf = profileCtx.GetSearchClauseFactory(dsEntities, "Store");

SearchClause searchClause = scf.CreateClause();

Microsoft.CommerceServer.SearchOptions searchOptions =

new Microsoft.CommerceServer.SearchOptions();

searchOptions.PropertiesToReturn =

"u_store_id,u_name,u_address,u_virtual_catalog, latitud,longitude";

DataSet ds = profileCtx.ExecuteSearch("StoreObject", searchClause, searchOptions);

// Find nearby stores

if (ds != null && ds.Tables.Count > 0)

{

foreach (DataRow r in ds.Tables[0].Rows)

{

double storeLat = double.Parse(r["latitud"].ToString());

double storeLon = double.Parse(r["longitude"].ToString());

// CalculateDistance() implements the Mercator's Projection

// to determine the distance between 2 points

if (CalculateDistance(lat, lon, storeLat, storeLon) < radius)

{

// Store is within the specified radius

Store store = new Store();

store.ID = r["u_store_id"].ToString();

store.Name = r["u_name"].ToString();

store.Address = r["u_address"].ToString();

store.VirtualCatalog = r["u_virtual_catalog"].ToString();

store.Latitude = storeLat;

store.Longitude = storeLon;

stores.Add(store);

}

}

}

}

Retrieve Basket Items

In order to build up the store stock status return data set, we need to retrieve the list of products from the user?s basket:

// Get list of product and quantity from user's basket

private void GetBasketItems(GUID userID, string basketName, List<BasketItem> basketItems)

{

// Get the user's shopping cart

Basket basket = CommerceContext.Current.OrderSystem.GetBasket(userID, basketName);

foreach (OrderForm orderForm in basket.OrderForms)

{

foreach (LineItem lineItem in orderForm.LineItems)

{

// Store basket item

BasketItem basketItem = new BasketItem();

basketItem.ProductID = lineItem.ProductId.ToString();

basketItem.ProductName = lineItem.DisplayName.ToString();

basketItem.Quantity = lineItem.Quantity;

basketItems.Add(basketItem);

}

}

}

Retrieve Store Inventory Status

We are now ready to retrieve on hand quantity for each store items:

private void GetStoreInventoryStatus(InventoryContext inventoryCtx, List<Store> stores,

List<BasketItem> basketItems)

{

foreach (Store store in stores)

{

// Get the inventory catalog for the current store

InventoryCatalog inventoryCatalog =

inventoryCtx.GetAssociatedInventoryCatalog(store.VirtualCatalog);

foreach (BasketItem basketItem in basketItems)

{

// Get Inventory Sku

InventorySku inventorySku =

inventoryCatalog.GetSku(store.VirtualCatalog,

basketItem.ProductID);

// Add inventory status to store

ItemStatus itemStatus = new ItemStatus();

itemStatus.ProductID = basketItem.ProductID;

itemStatus.StockStatus = (inventorySku.Quantity - basketItem.Quantity) >= 0 ?

"In Stock" : "Not Available";

store.ItemStatusList.Add(itemStatus);

}

}

}

Add Stores and Inventory Status to Virtual Earth Map

Now that we have all the Store inventory data, we will be adding pushpins and popup descriptions to the Virtual Earth Map via client side scripting:

? Create a new instance of the map control and add a shape layer:

map = new VEMap('myMap');

map.LoadMap();

layer = new VEShapeLayer();

map.AddShapeLayer(layer);

layer.Hide();

? Create pushpin shape and add the shape layer

// jsStoreStockData contains store inventory status retrived from

// previous steps

for (var i=0; i < jsStoreStockData.stores.length; i++)

{

// Create shape (pushpin)

var latLong = new VELatLong(jsStoreStockData.stores[i].Latitude,

jsStoreStockData.stores[i].Longitude) ;

var shape = new VEShape(VEShapeType.Pushpin, latLong);

shape.SetTitle('<H3>'+jsStoreStockData.stores[i].Name+'</H3>');

shape.SetCustomIcon("<img width='20' height='20' alt='store'

src='images/logo_vista.png'/>");

// Generate basket item stock status as shape description

var desc = '<div>'+jsStoreStockData.stores[i].Address+'<table>' ;

desc += '<tr><td><b>Product</b></td><td><b>Stock Status<td></td></tr>'

for (var j = 0; k < jsStoreStockData.stores[i].ItemStatusList.length; j++)

{

desc += '<tr><td>'+jsStoreStockData.stores[i].ItemStatusList[j].ProductName

+ '</td><td>';

desc += jsStoreStockData.stores[i].ItemStatusList[j].StockStatus

+ '</td></tr>';

}

desc += '</table></div>';

shape.SetDescription(desc);

// Add pushpin to ShapeLayer

layer.AddShape(shape);

// Center map and set zoom level

SetCenterAndZoom();

// Show the ShapeLayer

layer.Show();

}

If you have Microsoft Commerce Server 2007, your integration with Microsoft Virtual Earth just got a heck of a lot easier. The flexibility of the Virtual Earth platform allows for data visualization from almost any data repository whether it be Microsoft products like Commerce Server, CRM or SQL Server or non-Microsoft data sources such as Siebel, Oracle or MySQL. The proliferation of data visualization using mapping across the web and software products just keeps getting better, doesn't it?

CP

Mapvertising on Virtual Earth with Lat49 on Virtual Earth Developer Blog

Monday, September 15, 2008

image I recently wrote a post discussing the advertising opportunities on Live Search Maps. Well, it turns out there's a player in town ready to take up the opportunity to provide map-based advertising (aka mapvertising) and make YOU some money for your mapping applications! The guys over at Lat49 have created a mapvertising platform which runs perfectly with Microsoft Virtual Earth allowing you to specify where on the map your ads appear (both physically and geographically) and at what zoom level - regional, urban, neighborhood and local.

Per their CTO, David Baar, Lat49 now supports all the major maps API's, and several of our largest publisher sites use Virtual Earth. Internally, we exclusively use Virtual Earth in the "region of commerce" selection interface for our advertisers. We are in a major build-out phase right now, having experienced ten-fold growth in our network traffic over the summer, with new publishers and some major new advertisers coming online regularly. The idea with Lat49 from the start has been to provide a means for publishers to effectively monetize their maps' properties with advertising that is directly coupled to what the user is doing and seeing on a map site.

image

So, how's it work? Well, I signed up and walked through the process. You have the option of being a publisher (someone wants ads on their site) or an advertiser (someone who wants to have their brand exposed through the ad system). I'll do both.

Lat49 Advertiser - You have ads you want on people's maps.Once you sign up for your account, you'll be taken to the Advertiser Dashboard. This allows you to Create an Ad Run or Manage Pushpins. You'll start by clicking the "Create an Ad Run" button. You'll start by creating an ad button. These ad buttons will appear in the corners of map applications used by map publishers (people building map applications). Select your ad (125 x 125 or 234 x 60) and upload it into the system. Select the corner you want it to show up on and you're done. You can also upload expandable ads that expand as you hover over them and create optional off-map ads for use around the map, but not over the map.

image

Next you'll choose your Ad Target market - Local (information, traffic, directions, or business); Real Estate; Sports and Recreation; or Travel, Tourism and Outdoors. This helps you better target the audience publishers will use to display map ads. There's a different rate for a "basic" tile and a "premium" tile. Next, choose a date and duration during which your ads will run. Now you're ready to select your target market - this is the cool part.

image

You can select the zoom level - regional, urban, neighborhood, local, or just zoom in / out to the area you want. You can select single- or multi-level zooms to display your ads. A multi-level selection gives you the tile you've selected AND all of the tiles below it as the user zooms in. During this process, you select where the ads will be displayed on publishers web sites based on the tiles you select. So, on a publishers site if the user is looking at the tile area you've selected, during the time you've chosen on the type of site you've elected to target, you're map ad will be displayed in the corner you selected - sort of like a bounding box search. If the tiles selected are not available during the tile period you've chosen, you will be notified with an alert (reserved tiles are in black). This is pretty sweet, so you won't be in some rotation - you own those tiles across all of the sites! So, find your location in the search box, select some available tiles and submit your selection for the ad!

image Now, let's say you want to have branded pushpins on your site? Well, you can push your branded pushpins out there - say if you're a brand that everyone can use on their site like Starbucks or McDonald's location - you can have them displayed as pushpins in the API. So, if you are Starbucks or McDonalds and you want to syndicate your brand across all of these maps sites to highlight your locations, you can upload your pushpins (18 x 18) and locations (one at a time).

Done! Now, what if you have an application that you want to display ads on? Hey, you can even use this system as your own map advertisement system. The benefit is I get my own ads on my site, plus they get syndicated across all of these other applications!

Lat49 Publisher - You have a map application and want to make some money with ads.I had to create another account to be both an advertiser and a publisher, so logout and do that first. Once you login, you'll be taken to the publisher dashboard where you can setup your new site (and check your account revenue!). Click "Set up New Site." Enter the site URL; your provider (if you're reading this you'll want to select Microsoft); the category - Local (information, traffic, directions, or business); Real Estate; Sports and Recreation; or Travel, Tourism and Outdoors (notice these match the categories listed in the advertiser section); and keywords for your application.

image

Next, you'll want to incorporate the ads into your application. For this, you'll want to refer to the Lat49 API Documentation. But, for the synopsis there are 4 things you need to do - ridiculously simple, copy/paste/run:

  1. Add a line of JavaScript to your application.
  2. Initialize the Lat49 API.
  3. Place the ad container (DIV) somewhere on your page.
  4. Add JavaScript code to your application when the map view changes.

The implementation of mapvertising pushpins is a little more code, but all provided in the API documentation - a DIV for controls and JavaScript for displaying the pins.

The platform is SUPER robust! I love where this is going. Now, how about a bulk uploader for pins and you're scaling like in an unreal fashion. Look out Madison Avenue - mapvertising has arrived.

CP

Virtual Sweden on Virtual Earth Developer Blog

Friday, September 12, 2008

imageVirtual Sweden (not related to Virtual Earth) has launched Microsoft Virtual Earth into their web site highlighting different points of interest around the Nordic country. The map interface is pretty straightforward with orange pins representing points of interest on the map. And, greatly enough, we actually have some super high resolution photography in Sweden as a part of the Virtual Earth platform including Bird's Eye photography (Stockholm below).

image

So, what makes Virtual Sweden virtual? Well, the virtual tours of course (read that as panoramas)! The orange pushpins link off to panorama pictures of different hot spots around Sweden (and some surrounding countries). The panoramas are viewable through the Flash Panorama Player and embedded right into the web site. Check out the "Stockholm str?m" below. The panoramas are controllable by you or just let them spin around 360 degrees as you watch the respective site circle around you. However, if you take control (always take control) you can view the entire scene in a spherical way as if you're sitting inside a crystal globe - look not only side to side, but up and down. Pretty sweet!

image

I wonder if these are pictures or video? These could make for some SWEET Photosynths. I need to go to Sweden. Someone please give my boss a reason to send me.

CP

Virtual Earth Webcast For Upcoming Release on Virtual Earth Developer Blog

Friday, September 12, 2008

image

Come listen to me drone on and on about the next version of Virtual Earth. Register for the free webcast today titled, "Momentum Webcast: See More and Do More with Microsoft Virtual Earth (Level 100)." The webcast is focused on Business Decision Makers and will be for 1 hour on Thursday, October 2, 2008 starting at 9AM PDT.

Here's a little snippet about the event:

Microsoft is excited to announce the latest version of the Microsoft Virtual Earth platform, which can now deliver the Virtual Earth mapping experience on the desktop, on mobile devices, and via broadcast. The new release features mobile support, expanded international mapping, richer imagery, a broader range of data, and improved functionality. Organizations using Virtual Earth can see more and do more than ever, with enhancements that allow users to find, discover, and visualize data in new and innovative ways. Attend this webcast to learn about the rich capabilities of Microsoft Virtual Earth.

Hmm, I suppose I should start working on the deck.

CP

Virtual Earth and Microsoft Popfly on Virtual Earth Developer Blog

Thursday, September 11, 2008

image I mentioned in yesterday's post that there was a Microsoft Virtual Earth block in Microsoft Popfly which allows you to create your own mapping applications with a WYSIWYG interface. So, I figured it was time I posted a bit of a walk through on the capabilities. Now, you don't have to be a developer to understand or use Popfly - what you see is what you get means, you get a graphical user interface for creating these applications and don't have to deal with a single line of code. Unless, of course you want to (there's an HTML editor just for you). What's great is that when you're done, you can then take the application from Popfly and share it into Windows Live Gallery or Facebook among other sites. Maps for everyone!

First off, what is Popfly?Microsoft? Popfly? is the fun, easy way to build and share mashups, gadgets, games, Web pages, and applications.

Build Mashups. Mashups are a kind imageof application that take information from many places and mix it together. With Popfly's mashup creator you'll be able to take photos, RSS feeds, and many other kinds of information and combine them to create your own personalized view of the web.

Create Games. Popfly is a simple way to create and share games with your friends. Choose from a variety of built-in templates or start from scratch to create a side scrolling game, a 2D shoot-em-up, or a host of others. And best of all, you can get started without writing a line of code.

Design a Web Page. Always wanted to create a web page but thought it was too hard? Popfly makes it easy with its simple web page creator.

With respective to Virtual Earth - Map information with Popfly. Whether it's your Twitter friends, photos, or something like earthquake activity, Popfly makes it simple to put information onto a map so you can see it and share it with your friends. You can read more about Popfly capabilities on the Popfly overview page.

Now, how do I build a Virtual Earth application using Popfly?image

First thing you need to do is sign in to Popfly with your Windows Live ID. Go to Popfly.com and click the sign in button. This will prompt you for your credentials. Once authenticated, you'll have the option to create a game, web page or mashup - click "Create a Mashup." On the left, click "Maps." You'll see there is a whole slough of map blocks that have been created - a few by Microsoft and many more by the community developers. You can select one that makes sense for your application, but I'll walk through using the "Virtual Earth" block. Oh, and a block is the GUI representation of the code you don't see that allows you to create the application without writing bits.

Once you select the Virtual Earth block, you can then select from a few features to build your application. The interface will allow you to add pushpins by lat/long, add pushpins by location, add pushpins by address, set the map view and delete all pushpins. If you're not a geo-nerd and just want a Virtual Earth application on Facebook to show your house you'll want to use add pushpins by address - much easier.

Now, each menu item has its own list of attributes. So, for adding a pushpin by lat/long you fill in the form for latitude, longitude, URL (a link to an image for the pushpin popup), the title on your popup, the description included with the popup, if you want the map centered on the pin, the default zoom level and optionally to use the URL for the image above as a custom pushpin instead of our sheik red pushpin.

Click ok, then click run from the menu in the upper left. You'll see your Virtual Earth map with the pin (optionally custom, of course). You can change to Bird's Eye, Road, 3D, whatever and still see your pin. Hover over the pin and you'll see your title, description and optionally your image. You're done creating your application!

image

I mentioned there are a number of map blocks to choose from for building Popfly applications. Here's a list of the Virtual Earth relevant blocks with a brief description of each:

  • GeoNames - Geocoding.
  • VEPushpinListCreator - Creates a list of pushpins.
  • Virtual Earth - This is the one I used for this blog post.
  • GeoCodeRSS - Geocodes RSS feeds.
  • IPlocation - Geocodes IP addresses.
  • VEChina - Loads a map using the Virtual Earth Chinese tiles.

How do I publish my Popfly Virtual Earth Application? To put your new Virtual Earth map with pin into your web page, you'll first need to save it. Give it a project name, description and optional tags. Once it is save, you'll see your application name at the top of the page. Click it and see the application. You can see the application I built right on Popfly under my user account. From the application page (under your own user account) you'll see a button to "Share" your application. Your application will refresh and you'll see buttons for sharing the application on different web properties such as Windows Live Gallery, Facebook and Digg. I've selected to add this to my Facebook wall, so click the Facebook icon, then "Post Item on Facebook." I'll be redirected to Facebook for permission, click "Post" and BAM, you're done! It will add a link to your application hosted on Popfly to your Facebook wall.

image

Note: if you haven't allowed Popfly to add applications to your Facebook profile you will need to do that first, then go back and add your respective application again. Additionally, if you want to create a Facebook application out of your mashup, you can do that as well. For those of you who missed it, if you have a Facebook and like Virtual Earth you should check out my Virtual Earth Applications on Facebook post.

CP

Formula 1 Grand Prix and Virtual Earth on Virtual Earth Developer Blog

Thursday, September 11, 2008

imageGert Van Waelvelde built a nifty little application for racing fans to be able to see all of the Formula 1 Racing locations on a Microsoft Virtual Earth map. The application sits in the Live Gallery so it can be added to your Live.com custom homepage, your Live Spaces web page or you Live Events page. Now, apparently this has been updated because it was originally posted in November, 2007 but now uses the updated controls.

The application highlights the different countries involved with Formula 1, the respective race track, a country flag (pushpin) placed where the respective track is, the date when Formula 1 gets to that track, the most recent winner, the car they drove and links for the person and car in Wikipedia. The downside of the application is the size of the DIV containing the map. I want that to be configurable, but it's just not.

I should also note that the application was build using the Microsoft Popfly Virtual Earth block to drag and drop data onto a map in a WYSIWYG fashion. Did you know you can just drag and drop to create Virtual Earth applications in Popfly? Well, you can, but that's for another post. Also, feel free to search the Windows Live Gallery for more Virtual Earth gadgets. I found a bunch of random Virtual Earth mashup gadgets on Live Gallery. Where's yours?

CP

IS Consulting Releases MapDotNet UX Beta on Virtual Earth Developer Blog

Wednesday, September 10, 2008

imageIS Consulting just released the Beta of their MapDotNet UX product and the folks in the GIS world had better take notice. It's funny over the years how everyone thinks they've got the next "Arc-XXX killer," yet ESRI continues to persevere - they're doing a lot of things right; however, the MapDotNet UX product certainly should be raising some eyebrows down in Redlands.

How's this for a foundation to power a suite of geospatial applications:

  • Windows Communications Foundation (WCF)-based web services
  • Windows Presentation Foundation (WPF) Map and Tile renderer
  • Virtual Earth Base Map Data and Imagery
  • Silverlight 2.0 Map Control
  • Extensible Class Library with documented SDK
  • Map Design Capabilities
  • Spatial Data Import (Shapefile, SQL Server 2008, ArcSDE and PostGIS)

Welcome to the gun show (MapDotNet flexing biceps).

IS Consulting has provided two demonstration applications to illustrate the power of their UX. The first is a drill down demonstration using the Silverlight 2.0 interface to render the Virtual Earth tiles and land parcels in Florida. Once you check the box for "Enable Drill Down" any parcel you hover over will highlight and call out a popup to display additional information about the land parcel - TaxID, Owner, Year Built and Price.

image

The second demonstration application also uses a Silverlight 2.0 interface and Virtual Earth tiles, but renders real time weather feeds as raster information to show weather conditions over either our aerial or road tiles. You can also control the radar refresh rate (5 or 15 minutes) and you can enable LOOPING! Because the interface uses Silverlight, they're able to animate the weather loop as it moves along it's path. Wow! That alone is worth checking out the application and the suite that goes with it.

image?

imageAnd, how about these types of native functions in their SDK:

Plus, the interactive SDK (very much like the Virtual Earth interactive SDK) allows you to interact with the application, see a tutorial on what the method does, save any changes to the method you've made for interaction and download the source code.

This is an extremely powerful suite of geospatial data visualization services. Worth a looksee if you're exploring how to get data out of some of your archaic geo-data stores and onto the web in some of the newer interfaces.

CP

Philadelphia Open Studio Tours on Virtual Earth Developer Blog

Tuesday, September 9, 2008

image If you're an art lover, a technology junkie, Virtual Earth fan and you'll be in Philly this October you'll love this. The Philadelphia Open Studio Tours is using Microsoft Virtual Earth to highlight open studio artist tours with their POST Interactive Map application. I never thought I'd find a way to connect true art with online mapping, but the folks at POST did.

The application is fairly straightforward, but has uniqueness to it - the data. They have different zones (neighborhoods) for touring the galleries and the studios themselves are highlighted with a "P" pushpin. You can see Zone G highlighted (below) with a bit of shading to the map - using the VEShapeType.Polygon Enumeration. For those areas where there are multiple studios in the same location, they pull the array of locations apart in the enhanced roll over. There are also options for sizing the map to fit your screen. But, the most critical and unique element of this app is the data! Never before would you have seen an artists list of locations viewed in a map-based application until a simple platform came about to allow them to render the information in a simple user interface.

image

A little about the event: POST, in its ninth year, is an annual city-wide event where more than 290 professional visual artists in 16 Philadelphia neighborhoods open their studios to the public to show and sell artwork. POST is a program of The Center for Emerging Visual Artists, a nonprofit career development organization that creates opportunities for artists to reach their professional goals. Studio West of Broad Street runs October 4-5 and Studio East of Broad Street runs October 11-12. Kudos to Malcolm Sheppard for putting the site together.

CP