<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Virtual Earth 3D team blog : Bing Maps 3D</title><link>http://blogs.msdn.com/virtualearth3d/archive/tags/Bing+Maps+3D/default.aspx</link><description>Tags: Bing Maps 3D</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Two good questions</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/12/08/two-good-questions.aspx</link><pubDate>Tue, 08 Dec 2009 18:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9934226</guid><dc:creator>NikolaiF</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9934226.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9934226</wfw:commentRss><description>&lt;P&gt;Posting some answers to questions I've gotten recently.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Bug in the samples:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Kind of silly that I hadn't noticed this until now, but there's an error in the sample html for most of the samples.&amp;nbsp; The name of the functions used for plug-in load and activate conflict with an internal name used in the AJAX code.&amp;nbsp; Change "On3DPlugInLoaded" and "On3DPlugInActivated" to any other name, for example "PlugInLoaded" and "PlugInActivated".&amp;nbsp; Remember to change both your function name and the string passed to AttachEvent.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Zoom or Rotate around a point:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;There have been several requests about how to allow people to zoom or rotate around a particular point on the screen, rather than the center.&amp;nbsp; The &lt;A title="Rotate/Zoom code" href="http://www.veteam.members.winisp.net/Spaceland/blog/PointZoomRotatePlugIn.zip" mce_href="http://www.veteam.members.winisp.net/Spaceland/blog/PointZoomRotatePlugIn.zip"&gt;code&lt;/A&gt;&amp;nbsp;here isn't as cleaned up as I normally like it, but it illustrates the ideas.&amp;nbsp; You can do the rotate by purely calling built-in VE3D functions via the bindings system, but zoom requires a bit more work.&amp;nbsp; To run the code, replace files in the Multitouch &lt;A title=Samples href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx" target=_blank mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx"&gt;sample&lt;/A&gt; with the files in the zip.&amp;nbsp; You will want to call or adapt the calls to GestureEventSource to be in response to your inputs, rather than the worker thread I created.&lt;/P&gt;
&lt;P&gt;Remember you can contact me any time via the contact form, or if you prefer via comments.&amp;nbsp; Even if it looks like I haven't posted recently :)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9934226" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Plug-In/default.aspx">Plug-In</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Camera/default.aspx">Camera</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Bing+Maps+3D/default.aspx">Bing Maps 3D</category></item><item><title>Installing VE3D without the setup package</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/09/27/installing-ve3d-without-the-setup-package.aspx</link><pubDate>Sun, 27 Sep 2009 22:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9900049</guid><dc:creator>NikolaiF</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9900049.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9900049</wfw:commentRss><description>&lt;P&gt;In some scenarios it may be desirable to install the VE3D engine without visiting the &lt;A href="http://www.bing.com/maps"&gt;www.bing.com/maps&lt;/A&gt; site, and/or to avoid the individual downloads that the setup package performs (eg offline or enterprise installations).&lt;/P&gt;
&lt;P&gt;The main installation msi files are available at:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=117319"&gt;http://go.microsoft.com/fwlink/?LinkID=117319&lt;/A&gt; for x86&lt;/P&gt;
&lt;P&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=117320"&gt;http://go.microsoft.com/fwlink/?LinkID=117320&lt;/A&gt; for x64 systems&lt;/P&gt;
&lt;P&gt;If installed this way, the pre-requisites must already be installed:&amp;nbsp; the .NET 2.0 Framework and Windows Imaging Components.&amp;nbsp; Vista and Windows 7 already have both of these by default, for XP the latest versions are available by searching for them on the &lt;A title="MS Download Center" href="http://www.microsoft.com/downloads/en/default.aspx" target=_blank mce_href="http://www.microsoft.com/downloads/en/default.aspx"&gt;Microsoft Download Center&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;For convenience, here are some links to the&amp;nbsp;prerequisites:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=106132"&gt;http://go.microsoft.com/fwlink/?LinkID=106132&lt;/A&gt;&amp;nbsp;.NET 2.0 x86&lt;/P&gt;
&lt;P&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=106134"&gt;http://go.microsoft.com/fwlink/?LinkID=106134&lt;/A&gt; .NET 2.0 x64&lt;/P&gt;
&lt;P&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=101060"&gt;http://go.microsoft.com/fwlink/?LinkID=101060&lt;/A&gt; WIC x86&lt;/P&gt;
&lt;P&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=101061"&gt;http://go.microsoft.com/fwlink/?LinkID=101061&lt;/A&gt; WIC x64&amp;nbsp;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt; mso-bidi-language: HE; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9900049" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Bing+Maps+3D/default.aspx">Bing Maps 3D</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Install/default.aspx">Install</category></item><item><title>Hosting VE3D in native code</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/09/24/hosting-ve3d-in-native-code.aspx</link><pubDate>Thu, 24 Sep 2009 21:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9899105</guid><dc:creator>NikolaiF</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9899105.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9899105</wfw:commentRss><description>&lt;P&gt;Sorry for the glut of posts this week.&amp;nbsp; I hadn't been able to write much, but there were still interesting topics and questions coming up and I'm trying to address that backlog now.&amp;nbsp; So, without further ado:&lt;/P&gt;
&lt;P&gt;It is possible to host VE3D in a variety of contexts, and so far we've seen WinForms, WPF, and the browser.&amp;nbsp; It is also possible to host in straight native code.&amp;nbsp; In this sample, I address the COM interactions needed to host VE3D, and use OpenGL as an example hosting environment.&lt;/P&gt;
&lt;P&gt;Download the &lt;A title="Sample Code" href="http://www.veteam.members.winisp.net/Spaceland/blog/VE3DOpenGL.zip" mce_href="http://www.veteam.members.winisp.net/Spaceland/blog/VE3DOpenGL.zip"&gt;code here.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 490px" title="VE3D on an OpenGL cube" alt="VE3D on an OpenGL cube" src="http://www.veteam.members.winisp.net/Spaceland/blog/ve3dCube.jpg" width=640 height=490 mce_src="http://www.veteam.members.winisp.net/Spaceland/blog/ve3dCube.jpg"&gt;&lt;/P&gt;
&lt;P&gt;This sample demonstrates four concepts:&lt;/P&gt;
&lt;P&gt;Interaction with native code.&lt;BR&gt;Back buffer retrieval.&lt;BR&gt;Direct camera control.&lt;BR&gt;OpenGL integration.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Native code:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Managed code provides easy and convenient methods for exposing your code to COM, and hence to native callers.&lt;BR&gt;From the managed side, check "Register for COM interop" in your project's Build tab.&amp;nbsp; Decorate an interface&lt;BR&gt;with ComVisible(true) and provide a guid, and the backing class with the interface type as shown.&amp;nbsp; Your types&lt;BR&gt;are now visible and callable.&lt;/P&gt;
&lt;P&gt;On the native side, you can now instantiate your managed code using typical COM calls, as shown.&amp;nbsp; It can then&lt;BR&gt;be called similarly to any other object.&lt;/P&gt;
&lt;P&gt;To add a new function to the interface, simply add it to the interface file and the backing .cs file, then &lt;BR&gt;recompile.&amp;nbsp; By designing your interface in appropriately, you can then decide whether to do most of your logic&lt;BR&gt;in native or managed code, depending on where you feel more comfortable.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Backbuffer retrieval:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The Render function provides the most efficient way of pulling VE3D's back buffer into main memory.&amp;nbsp; In general&lt;BR&gt;it is better to not do this, rather let the hardware render to the screen directly, but some situations demand&lt;BR&gt;using the scene in some other fashion.&amp;nbsp; Here, we get the memory as a direct pointer.&amp;nbsp; Note that this approach&lt;BR&gt;assumes that you are handling any format and stride issues yourself.&lt;/P&gt;
&lt;P&gt;It is also possible to get a graphics object from systemMemorySurface, an HDC from that, and then use functions&lt;BR&gt;like BitBlt to copy out data and handle some of these issues for you.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Direct camera control:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Most samples thus far have demonstrated use of bindings and actions, or deriving camera controller.&amp;nbsp; The&lt;BR&gt;CameraController class here shows how to write a controller that can react directly to user input, modifying&lt;BR&gt;camera values directly.&amp;nbsp; The "best practices" method is to wrap your input device in a EventSource, and use&lt;BR&gt;bindings and actions to communicate the information to your controller.&amp;nbsp; These structures provide simple &lt;BR&gt;remapping of inputs, if necessary, and handle any threading or marshalling issues.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;However, it is also possible and sometimes appropriate to take the simpler approach used here.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;OpenGL integration:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;It is possible to integrate VE3D into an existing OpenGL application.&amp;nbsp; Using the Render method described above,&lt;BR&gt;the pointer produced is suitable for direct consumption by OpenGL.&amp;nbsp; There are differences in how textures are&lt;BR&gt;handled by the two APIs, but these are fairly simple to overcome, and are described in DrawOpenGLWindow().&lt;/P&gt;
&lt;P&gt;Note that there is nothing that limits this sample to OpenGL, anything that can consume the buffer as provided &lt;BR&gt;can host VE3D in the exact same manner.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Note on debugging:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;The Visual Studio debugger requires some direction on how to deal with mixed native and managed code.&lt;BR&gt;In the VE3DOpenGL properties page, expand Configuration Properties, click Debugging, then choose Debugger &lt;BR&gt;Type.&amp;nbsp; You can elect to only attach to native, only to managed, or to both ("mixed").&amp;nbsp; "Auto" in this case &lt;BR&gt;will be native-only.&amp;nbsp; If you find your breakpoints are not hitting, it is likely this setting.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Note on glut.h:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;For some reason, in the release version only, I managed to get it thinking that it needed glut and I haven't&lt;BR&gt;been able to figure out why.&amp;nbsp; If you encounter problems while compiling due to glut, just run in debug mode.&lt;BR&gt;This is a problem that is specific to the sample app, not the methodology used.&lt;/P&gt;
&lt;P&gt;Enjoy, and as usual please let me know about any questions or problems you may have.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9899105" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Code/default.aspx">Code</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Bing+Maps+3D/default.aspx">Bing Maps 3D</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Rendering/default.aspx">Rendering</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/OpenGL/default.aspx">OpenGL</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/COM/default.aspx">COM</category></item><item><title>X File bulk display</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/09/20/x-file-bulk-display.aspx</link><pubDate>Mon, 21 Sep 2009 00:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9897332</guid><dc:creator>NikolaiF</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9897332.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9897332</wfw:commentRss><description>&lt;P&gt;I was asked the other day about how to load multiple x file -based models into VE3D without having to place each one manually.&amp;nbsp; I've written up a &lt;A title="X File DataSource sample" href="http://www.veteam.members.winisp.net/Spaceland/blog/XFileDataSource.zip" mce_href="http://www.veteam.members.winisp.net/Spaceland/blog/XFileDataSource.zip"&gt;sample here&lt;/A&gt;.&amp;nbsp; The idea is more or less a fusion of the existing ActorDataSource and XFile samples, using the actor from the XFile sample rather than the bunnies.&amp;nbsp; I've also mocked up a very simple data file that contains placement information, rather than generating data on the fly as for the bunnies.&lt;/P&gt;
&lt;P&gt;The way I've done this, the parsing code for the x files is done in the actor.&amp;nbsp; In this way, swapping out file formats should be straightforward so long as you have parsing code for it (sorry, only x files are directly implemented in the engine, but the results of any parse should still be easily convertible into VE3D graphics objects).&lt;/P&gt;
&lt;P&gt;For the sake of simplicitly I did do one thing wrong.&amp;nbsp; The flow of the code is like this:&amp;nbsp; multiple background threads all execute QueryPrimitivesInternal at the same time, and when they are finished, they move through a lock into ActorBuilder.&amp;nbsp; They are still on background threads, but they now execute serially.&amp;nbsp; So, really the data retrieval (in this case, loading from resources, but probably a network request) and the parsing, as appropriate, should happen in QueryPrimitivesInternal, and the action in ActorBuilder should be kept to a minimum.&amp;nbsp; I violated this rule in the sample code for the sake of illustration, but you should be aware of it.&lt;/P&gt;
&lt;P&gt;Finally, an important consideration is level of detail.&amp;nbsp; Dense and numerous models can slow down loading and rendering.&amp;nbsp; DataSources take advantage of the ActorBounds and scale concepts, such that it is possible to use simplified models at certain LODs, and switch to more detailed as the user zooms in.&amp;nbsp; If your needs are less extreme, then you can simply use scale to cause models to stop rendering when not in view, and at a certain distance, which is what I have done in the sample.&lt;/P&gt;
&lt;P&gt;Have fun!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9897332" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/X+File/default.aspx">X File</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/DataSource/default.aspx">DataSource</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Actor/default.aspx">Actor</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Bing+Maps+3D/default.aspx">Bing Maps 3D</category></item><item><title>Actor data source questions</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/07/26/actor-data-source-questions.aspx</link><pubDate>Sun, 26 Jul 2009 21:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9849338</guid><dc:creator>NikolaiF</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9849338.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9849338</wfw:commentRss><description>&lt;P&gt;I just fielded a few good questions via email about actor data sources, and thought it would make a good post.&lt;/P&gt;
&lt;P&gt;Actor data sources are a way of getting little bits of your code (actors) into the world, handing spatial indexing and cache management for you.&amp;nbsp; When each actor is in view, they are given the opportunity to execute code in the Render and Update functions.&amp;nbsp; When the cache is full and an actor is evicted, they again may execute code in the OnRemove function.&lt;/P&gt;
&lt;P&gt;You create them by implementing a DataSource with usage Actor, and an ActorBuilder which translates the Primitives returned into Actor objects, along with information like what areas of the Earth the actors should be used in, as an ActorBounds object.&amp;nbsp; All of this can be seen in the &lt;A title=ActorDataSource href="http://www.veteam.members.winisp.net/Spaceland/Samplesv4/ActorDataSource/TestPage.htm" mce_href="http://www.veteam.members.winisp.net/Spaceland/Samplesv4/ActorDataSource/TestPage.htm"&gt;ActorDataSource&lt;/A&gt; &lt;A title=Samples href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx" target=_blank mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx"&gt;sample&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;In the sample, however, only one Primitive is returned per request, and only one Actor.&amp;nbsp; What if you want more?&amp;nbsp; The important thing to know is that there has to be a 1-1 correspondence between Primitives and Actors *.&amp;nbsp; You must create one Actor for every Primitive used.&amp;nbsp; If you create more than one Actor for a single Primitive, only one will appear.&lt;/P&gt;
&lt;P&gt;The reason for this is the Actor update story.&amp;nbsp; It is possible to update an Actor already in the system by two methods.&amp;nbsp; When an Actor is updated, the PrimitiveId from the passed-in primitive is used to find and update the actor in question.&amp;nbsp; If you add multiple actors per primitive, an ambiguity arises as to what you actually want to do.&lt;/P&gt;
&lt;P&gt;It is possible to resolve this ambiguity by creating "nested" actors.&amp;nbsp; This is simple.&amp;nbsp; Just create the actors you want, and then a "container"&lt;/P&gt;
&lt;P&gt;*:&amp;nbsp; actually you can create a single Actor with multiple Primitives, but I don't want to confuse the issue for now.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;U&gt;Updating an Actor:&lt;/U&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Expiration.&lt;/STRONG&gt;&amp;nbsp; On the Entity attached to your primitive, add a property "ExpiresInSeconds":&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;e.EntityTypes["bunny"].Properties.Create("ExpiresInSeconds", typeof(double));&lt;/P&gt;
&lt;P mce_keep="true"&gt;...&lt;/P&gt;
&lt;P mce_keep="true"&gt;entitySpec.Properties.SetValue("ExpiresInSeconds", 10.0);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;Your QueryPrimitivesInternal function will be called again for every area the affected Actors live, and OnRemove will be called for the expiring Actors.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Manual.&lt;/STRONG&gt;&amp;nbsp; You can specify a specific PrimitiveId to update using OnDataChanged in your source DataSource.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;PrimitiveIdWriteableCollection wc = new PrimitiveIdWriteableCollection();&lt;BR&gt;wc.Add(new BunnyPrimitiveId(this, tile));&lt;BR&gt;OnDataChanged(new SpatialExtent(null, null, wc.GetReadOnlyCopy()));&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;You must also implement the QueryPrimitivesByIdsInternal function.&amp;nbsp; A collection of ids is provided, and you must return an array of Primitives that matches the input (so, the first item in the id collection should result in a Primitive at array index 0, etc).&amp;nbsp; If an element of the array is left null, that means to delete the Actor corresponding to that PrimitiveId.&amp;nbsp; Your ActorBuilder is then called to allow you to create the new replacement Actors.&lt;/P&gt;
&lt;P mce_keep="true"&gt;You can also specify a region of the Earth to update in the SpatialExtent, but update by entity is not supported.&amp;nbsp; Updating very large areas can be expensive, so use spatial regions with care.&amp;nbsp; Update by PrimitiveId is the most efficient.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9849338" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/VE3D/default.aspx">VE3D</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/DataSource/default.aspx">DataSource</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Actor/default.aspx">Actor</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Bing+Maps+3D/default.aspx">Bing Maps 3D</category></item><item><title>Bing Maps 3D</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/06/14/bing-maps-3d.aspx</link><pubDate>Sun, 14 Jun 2009 21:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9751339</guid><dc:creator>NikolaiF</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9751339.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9751339</wfw:commentRss><description>&lt;P&gt;As you may be aware, the website changed names to Bing Maps:&amp;nbsp; &lt;A href="http://www.bing.com/maps/"&gt;http://www.bing.com/maps/&lt;/A&gt;.&amp;nbsp; The 3D view on the site is now called "Bing Maps 3D".&lt;/P&gt;
&lt;P&gt;As a developer it doesn't change much for you, and in terms of the engine/SDK it's still valid to refer to it as "Virtual Earth 3D".&amp;nbsp; The only technical issue I can think of is to repeat that it's a good idea to use fwlinks for the urls for our base layer data, as explained at the end of the post &lt;A href="http://blogs.msdn.com/virtualearth3d/archive/2009/04/06/data-format-revision.aspx" target=_blank mce_href="http://blogs.msdn.com/virtualearth3d/archive/2009/04/06/data-format-revision.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9751339" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Bing+Maps+3D/default.aspx">Bing Maps 3D</category></item></channel></rss>