3D, or Not 3D: That Is the Question

When the Microsoft Virtual Earth team released version 6 of the Virtual Earth SDK, they also unveiled an application, in conjunction with 3DVIA, called Virtual Earth - 3DVIA which allows for the creation of 3D models for inclusion in Virtual Earth applications. For this experiment, we are going to make use of this program to create some 3D content for our Virtual Earth applications.

IDV Offices in VE

First things first, you are going to need a Windows Live ID for this experiment. If you do not already have one, you can sign-up for one here. Point your browser to http://maps.live.com and, if you have not already done so, log-in with your Windows Live ID. The map has to be in 3D mode to be able to add 3D models, so click the 3D button in the map control. Once the 3D version of the map is displayed, right-clicking on the map should bring up a context menu with the option “Add a 3D model”.

Add 3D Model to Virtual Earth

Selecting the “Add a 3D model” option will launch Virtual Earth - 3DVIA. If it is not yet installed on your machine, you will be walked through the installation process. Once the application launches, you will be asked to log-in with your Windows Live ID again. The map imagery surrounding the point you selected will be pulled into Virtual Earth - 3DVIA. Note: the application will use map tiles from whichever map style is currently selected.

Virtual Earth - 3DVIA

Virtual Earth - 3DVIA has several drawing tools. We are going to select the rectangle tool and draw a simple rectangle over the top of our imagery.

Using the Draw Rectangle Tool in Virtual Earth - 3DVIA

After creating a our two-dimensional shape, you can then use the “Extrude” tool to give our shape some height in order to take advantage of all that wonderful, 3rd-dimensional real estate.

Using the Extrude Tool in Virtual Earth - 3DVIA

Those are the basic (very basic) concepts in creating 3D models for Virtual Earth. If you are interested in learning more about the nuances of 3D modeling with Virtual Earth - 3DVIA, you can access some tutorials provided by Microsoft here.

Now here’s the point at which we borrow a page from the playbook of those cable cooking shows. I showed you how to prepare the dish and now, we take the fully cooked meal out of the oven. Abhinav Dayal, one of my talented colleagues at IDV, put together this awesome model of our offices in Virtual Earth - 3DVIA. As you can see, it’s a bit more interesting than our simple, extruded rectangle.

Model of IDV’s Offices

Once the model is complete, click the “Publish” button to save your model and send it to the Virtual Earth map open in your browser.

3DVIA Publish Button

If you had a collection open when you added the 3D model, the model will be added to that collection. Otherwise, the model will be added to the temporary, “Unsaved collection”. Save the collection and make sure to turn on sharing in the collection properties.

To view this collection outside of maps.live.com we need to know what the collection ID is. This can be obtained by selecting “Copy to Clipboard” from the “Share” menu when the desired collection is open.

Copy Collection URL to Clipboard

Once you paste the contents of the clipboard into a text editor, you should see a url like this:

http://maps.live.com/default.aspx?v=2&cp=42.671429~-84.534895&style=h&lvl=7&
tilt=-90&dir=0&alt=840779.086514725&cam=42.671429~-84.534895&scene=-1&
cid=BB5F2FA205325EA0!113&encType=1

I’ve emboldened the cid property, ‘c’ in this case standing for “collection”. We can now use this value to bring this collection into an application making use of the Virtual Earth SDK. This involves creating a new VEMap.VEShapeSourceSpecification object as such: var x = new VEShapeSourceSpecification(VEDataType.VECollection, [Collection ID], [Layer Name]);

You can view the final product of our experiment here.


Discovery Channel + KML + Amazon S3 + Popfly + Virtual Earth = The Monster Mash(up)

Microsoft Popfly is a web-based tool which can be used to create the mashups that are so hot these days. Popfly is centered on the concept of “blocks”, self-contained objects which perform a specific function. Popfly’s Silverlight-based interface allows the user to drag-and-drop these blocks and draw connections between the blocks to specify the flow of data.

For this lab, we were interested in using Popfly to create a map mashup in which we could render a basic KML document. We also thought it would be cool to to add Amazon’s S3 (Simple Storage Service) into the equation. We decided to host our KML document and our map icons on S3. The original KML file which was copied to S3 for purposes of this experiment is a selection of landmarks, cities, and national parks from the Discovery Channel and can be obtained here.

There are several user-submitted KML parsing blocks available in Popfly, but these components do not seem to work for many KML documents (this is probably due to the MIME type often assigned to the .kml extension). To get around this, we created our own Popfly block to accomplish this task. The block is shared in Popfly and its name is “IDV KML Parser” if you would like to reuse it. Those who are interested in developing their own Popfly blocks can obtain the Popfly block sdk here. You can get a .zip file with the .xml and .js files used in our block here.

Once our KML parser block was complete, all that was needed was to drag an instance of that block and Microsoft’s Virtual Earth block onto our workspace and configure a connection between the two blocks.

Popfly Interface

After pointing the KML URL to the document which we had copied to S3 (https://s3.amazonaws.com/KML/Discover_Networks.kml), our mashup was complete.

We created a second mashup in which we added a User Input block so that any KML file, provided that it only has <Placemark> objects that are points, can be visualized.

Popfly Interface

Give it a try!

Popfly provides users with a very visual and intuitive method of creating mashups of their data. And with the concept of blocks, users that are less technically inclined can build projects out of existing blocks and the more ambitious users out there can create their own blocks (which they can then share) to accomplish a tasks for which there is not yet a block. So what are you waiting for? Get mashing!


Everybody’s Searchin’ for Somethin’

Last week, Microsoft unveiled the latest addition to their line of enterprise search solutions, Microsoft Search Server 2008 (MSS). MSS 2008 is available in two flavors, a commerical, standard edition and a free, “express” edition. The primary difference between the two versions being that MSS Express can only be deployed on a single server, whereas the commercial version can be deployed on a server farm and therefore is able to all the benefits that come with farm deployment, such as load balancing. You can view a comparison of the feature-sets offered in the two versions of MSS with Microsoft’s enterprise search heavyweight, Microsoft Office SharePoint Server 2007 (MOSS 2007), here.

In MSS, Microsoft adds federated search capabilities to the base search functionalities found in MOSS 2007. Federated search allows MSS to query sources which it cannot index, such as web services and search engines, provided that the source supports the OpenSearch protocol. Federated search leverages the existing search and sort mechanisms found in these sources. Federated search connectors are needed for MSS to properly query the federated source and translate the results into a usable format. A connector specifies a template URL for querying the service and an XSL document for translating the search results into HTML that can be displayed in the Federated Results Web Part. Microsoft has made several connectors for popular services available here.

For this experiment, we put together a federated search connector for querying Flickr via the Flickr API. We wanted our connector to present our search results in a compelling manner, so we decided to add some interaction via JavaScript in our XSL. This permits us to visualize each photo in the result set on a Virtual Earth map, giving the photo a geographical context.

IDV Enterprise Search Demo

Click here to view our demo.

The release candidate of Microsoft Search Server 2008 Express can be downloaded here. You can download our federated search connector for the Flickr API here. Go here for more information on building federated search connectors.

Note: You must make sure that the “Retrieve Results Asynchronously” option in the Federated Results Web Part is unchecked if you intend to use our Flickr connector.

The release of MSS 2008 is expected in the first half of 2008.


Cheeseburger in Paradise… Valley, California

Today’s experiment will involve loading a custom set of POI’s, stored as a MOSS 2007 list, onto a Garmin nüvi 660 GPS device through our Visual Fusion for SharePoint (VFSP) product.

Garmin nüvi 660

The POI set which will be used in this experiment is a list of all In-N-Out Burger locations. Since the GPS unit needs geocoded POI’s, I set up a VFSP Geo Custom List in SharePoint which geocoded the addresses of the In-N-Out Burger locations.

Geo List of In-N-Out Burger Locations

To transfer the POI set to the GPS unit, we will use Garmin’s POI Loader utility (available for download here). POI Loader is used to export POI sets in either a .gpx or .csv file to a compatible Garmin device. For this experiment, we will use a .csv file format due to the redundant nature of our data set. If your POI’s are strongly dissimilar, you may want to work with a .gpx file.

The GPS unit expects the records in the .csv file to be ordered as such: longitude, latitude, title, and details. By creating a new view for the list we can order it in this manner.

Create a New List View

Create a standard, public view and position the columns in the correct order. You might also want to hide unnecessary columns, as I did.

Configure Your New List View

You should now see the list in the view you just created. Export the list to Excel by selecting Export to Spreadsheet from the Actions menu, this will launch Excel and open the list as a workbook. Save the workbook as a .csv file.

If you choose, you can create a custom 24 px x 24 px icon to be associated with your POI’s. The icon must be a .bmp file with the same file name as your .csv file (for example, “xyz.csv” and “xyz.bmp”) and reside in the same directory. I created the icon below to indicate the In-N-Out Burger locations.

In-N-Out Location Icon

Now that we have our .csv and custom icon, make sure the GPS device is connected to the computer and then run Garmin POI Loader. When prompted, select the option to “Install new custom POI’s onto your device”. On the next screen, specify the directory which contains your .csv file and icon bitmap, select either metric or English measurement, and select “Manual” mode, which will allow us to specify a proximity alert for our POI set.

POI Loader Dialog

On the next screen, check “This file contains proximity alerts points” when prompted regarding the correct .csv file. Then specify an alert distance. This will cause the GPS unit to alert you whenever you come within your specified distance of a POI.

Set Proximity Alerts Distance

Now that the points are loaded, it’s time to try it out. When you are within the specified distance of a POI, the unit should raise an alert.

Proximity Alert

Touching the alert banner will bring up the details of the alert and enable you to set that POI as your destination.

Proximity Alert Details

You should be able to see the custom POI icon as you approach your destination.

Custom POI Icon

If you are getting hungry and have not received a proximity warning recently, you can go to Extras > Custom POIs on your nüvi 660 and you will be presented with a listing of the 52 closest of your custom POI’s. You can select any of the entries to set it as your destination.

Nearby Custom POI’s

I don’t know about you, but this is making me really hungry.

Thanks to Eric Hunt at Microsoft Consulting for the idea behind this experiment.

P.S. You can download a zip file containing the .csv file and .bmp file I used in this experiment here.


iCame, iSaw, iPhone

Today, we’re going to do an experiment in which IDV’s Visual Fusion for SharePoint (VFSP) for Microsoft Office SharePoint Server 2007 is used to generate content that can be viewed on the hottest phone on the market. No, I’m not talking about Maxwell Smart’s shoe phone, I’m talking about Apple’s iPhone.

The iPhone features an application called Maps which allows a user to search for addresses, obtain driving directions, and store a list of “bookmarked” locations. OS integration enables the user to map the location of an address within their Contacts list at the tap of the screen.

iPhone with Maps Application Highlighted

As has been reported elsewhere, the iPhone supports basic GeoRSS and KML. I have not yet tested its KML capabilities, but as far as GeoRSS is concerned, Maps can only display points. The more complicated geometries of polygons and polylines are not currently supported.

So for labs.idvsolutions.com’s inaugural experiment we will use VFSP to generate a GeoRSS from a SharePoint list and load the resulting feed into Maps on the iPhone.

First, assuming that VFSP is installed on your SharePoint server, you will need to create a new VFSP Geo Custom List.

Create a New VFSP Geo Custom List

Then add the data points you are interested in. For this particular experiment, we will be using the locations of the Seven Wonders of the Ancient World.

Add a New List Item

When you are finished adding your locations, select View GeoRSS Feed from the Actions menu.

Export List to GeoRSS

Copy the URL to the GeoRSS that is generated. The URL will look something like this:

http://wondersoftheworld.idvsolutions.com/GetList.vfsp?
ListGuid={2d66d614-1130-4548-96b9-c20068e18c0b}
&outputformat=grss

If you attempt to access the above link from your iPhone, the GeoRSS will be treated as though it were an RSS and will open in an RSS reader. For the feed to load in the Maps program, append the URL to the end of a Google Maps request, like so:

http://maps.google.com/maps?q=
http:%2F%2Fwondersoftheworld.idvsolutions.com%2FGetList.vfsp%3F
ListGuid%3D%7B2d66d614-1130-4548-96b9-c20068e18c0b%7D
%26outputformat%3Dgrss

(Note: For this to work, you must URL-encode the address of the GeoRSS that you are passing to Google Maps. Go here for information on URL-encoding as well as a tool which can encode the URL for you.)

Since the iPhone has no copy/paste functionality, you can either type the entire URL into the search field in the Maps application, or go the much easier route and email yourself the URL.

Clicking on that nasty looking link above should open the GeoRSS feed in the Maps application. Let’s see Maxwell Smart’s shoe phone do that!

iPhone’s Maps Application Displaying GeoRSS Feed


And So It Begins…

We here at IDV Solutions have been advocates of the visual composite application since our inception. We believe that, like the proverbial iceberg, only the very utmost tip of this emerging paradigm has surfaced thus far. Willing to push the technological envelope and stretch our creativity, we have started this labs site to explore the possibilities found in the visual composite application.

It is essential to our vitality as a company that we continue to develop new ways to deliver content to our clients in a completely intuitive and efficient fashion. And as the number of complementary, third-party applications as well as new avenues for content increases on a daily basis, this pursuit requires vigilance and an inclination to innovate. This lab will be our forum for experiments and research as we strive to lead the ever evolving world of composite applications.