<?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 : Virtual Earth 3D</title><link>http://blogs.msdn.com/virtualearth3d/archive/tags/Virtual+Earth+3D/default.aspx</link><description>Tags: Virtual Earth 3D</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><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><item><title>Manual Rendering</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/04/19/manual-rendering.aspx</link><pubDate>Sun, 19 Apr 2009 23:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9555894</guid><dc:creator>NikolaiF</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9555894.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9555894</wfw:commentRss><description>&lt;P&gt;Folks have really reacted to my mention of manual rendering, so I've made a sample for it.&amp;nbsp; Good thing, too, because to be frank there are a few warts.&amp;nbsp; On the upside, however, it is possible to work around all of them and the code required is not too scary.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.veteam.members.winisp.net/Spaceland/blog/ManualRender.zip" mce_href="http://www.veteam.members.winisp.net/Spaceland/blog/ManualRender.zip"&gt;Get the code!&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In this sample, I host a GlobeControl on a form like normal, but instead of using the built-in render thread I render on the UI thread using the manual render API.&amp;nbsp; If you are content to let WinForms present to the screen for you, you're done at this point.&lt;/P&gt;
&lt;P&gt;But it is common in these situations to want to get the rendered surface to make a movie, present in some other context like WPF, etc.&amp;nbsp; I include an example of the most basic way to do this, which is the only official way to currently do it (WorldEngine.CaptureScreenShot).&amp;nbsp; If this isn't good enough, and you're a bit more daring, it is possible to get our rendering surface and do more clever things with it.&amp;nbsp; That's what the good folks at &lt;A class="" href="http://blogs.msdn.com/virtualearth3d/archive/2009/03/11/wpf-and-ve3d.aspx" mce_href="http://blogs.msdn.com/virtualearth3d/archive/2009/03/11/wpf-and-ve3d.aspx"&gt;Infostrat did for their WPF code&lt;/A&gt;, and for the time being I actually recommend using their wrapper if you want to use WPF.&lt;/P&gt;
&lt;P&gt;I've labelled all the warts and their workarounds with the tag "WORKAROUND" in the code so you can look more closely if you like, but you should also just be able to copy and paste the sample and get your code to work as it should.&amp;nbsp; Also, this is not actually an an official part of the sample pack, but something similar to it will be.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9555894" 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/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Manual+Rendering/default.aspx">Manual Rendering</category></item><item><title>Anisotropic Filtering</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/04/19/anisotropic-filtering.aspx</link><pubDate>Sun, 19 Apr 2009 20:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9555803</guid><dc:creator>NikolaiF</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9555803.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9555803</wfw:commentRss><description>&lt;P&gt;Anisotropic has been a bit of a frustration for us because while it is&amp;nbsp;very easy to do (it's really just a flag to DirectX), the compatibility issue I mentioned before made it a pain to actually get it in to the control.&amp;nbsp; It's a shame we couldn't turn it on by default, but at least it's there.&amp;nbsp; The effect of it is really quite dramatic, as you can see below.&amp;nbsp; I took these images at &lt;A class="" href="http://maps.live.com/default.aspx?v=2&amp;amp;FORM=LMLTCC&amp;amp;cp=47.580449~-122.174841&amp;amp;style=a&amp;amp;lvl=19&amp;amp;tilt=-5.7760339183176&amp;amp;dir=264.32567009971&amp;amp;alt=50.7784003261477&amp;amp;cam=47.580592~-122.172705&amp;amp;scene=-1&amp;amp;phx=0&amp;amp;phy=0&amp;amp;phscl=1&amp;amp;encType=1" target=_blank mce_href="http://maps.live.com/default.aspx?v=2&amp;amp;FORM=LMLTCC&amp;amp;cp=47.580449~-122.174841&amp;amp;style=a&amp;amp;lvl=19&amp;amp;tilt=-5.7760339183176&amp;amp;dir=264.32567009971&amp;amp;alt=50.7784003261477&amp;amp;cam=47.580592~-122.172705&amp;amp;scene=-1&amp;amp;phx=0&amp;amp;phy=0&amp;amp;phscl=1&amp;amp;encType=1"&gt;this location&lt;/A&gt;, near the 405 and 90 interchange in Bellevue.&lt;/P&gt;
&lt;P&gt;With anisotropic filtering enabled:&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Anisotropic filtering" style="WIDTH: 632px; HEIGHT: 558px" height=558 alt="Anisotropic filtering" src="http://www.veteam.members.winisp.net/Spaceland/blog/aniso.jpg" width=632 mce_src="http://www.veteam.members.winisp.net/Spaceland/blog/aniso.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Without:&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Trilinear Filtering" style="WIDTH: 631px; HEIGHT: 554px" height=554 alt="Trilinear Filtering" src="http://www.veteam.members.winisp.net/Spaceland/blog/nonaniso.jpg" width=631 mce_src="http://www.veteam.members.winisp.net/Spaceland/blog/nonaniso.jpg"&gt;&lt;/P&gt;
&lt;P&gt;To turn it on in the website, click "options" in the upper right corner, then "3D settings", and finally check "Use anisotropic filtering".&amp;nbsp; To turn it on in code:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;plugIn.Host.RenderEngine.Graphics.Settings.UseAnisotropicFiltering = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;These settings are remembered in the user.config file for future runs of the control.&amp;nbsp; The perf penalty for this on cards that are even remotely modern is almost zero, so go turn it on now!&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9555803" 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/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category></item><item><title>Data Format Revision</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/04/06/data-format-revision.aspx</link><pubDate>Mon, 06 Apr 2009 20:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9534085</guid><dc:creator>NikolaiF</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9534085.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9534085</wfw:commentRss><description>&lt;P&gt;As part of our version update, we are also updating the file format of our 3D buildings.&amp;nbsp; The upside is that the new data format is significantly smaller, for faster download.&amp;nbsp; The downside is that old versions of the code cannot understand the new data.&amp;nbsp; However, in the short term this should not affect you.&amp;nbsp; There will be a period where old data will still be served to clients that are using the Javascript API and the Managed API.&amp;nbsp; This represents a bit of a compromise, because even clients that have updated to the new version will get the old data for this period, but we felt that this was better than releasing new code and breaking old (and existing) code on the same day.&lt;/P&gt;
&lt;P&gt;To see the new data&amp;nbsp;after the version update, simply navigate to maps.live.com and click 3D.&amp;nbsp; The new data will be live on the site.&lt;/P&gt;
&lt;P&gt;Once this period is over, clients that have updated will automatically begin receiving the new data without any required changes or interruptions.&amp;nbsp; You will probably hardly notice, except that buildings of course will load faster.&amp;nbsp; Clients that have not updated will break!&amp;nbsp; You've been warned!&amp;nbsp; The only issue really will be that buildings will not appear, and only if your code is directly adding model data sources.&lt;/P&gt;
&lt;P&gt;The exact length of this period is TBD, but probably about a month.&amp;nbsp; Our hope is that most everyone will update by then anyway, because the new version really is better.&amp;nbsp; I will blog a reminder when the date is decided and approaching.&amp;nbsp; As always, let me know if you will need any help during the transition.&lt;/P&gt;
&lt;P&gt;In addition, in several samples I directly linked to the manifest files for some resources, like imagery, dem, and models.&amp;nbsp; These are the urls used when creating DataSourceLayerData objects.&amp;nbsp; I encourage you to instead use fwlinks, which are just redirects to the same resources.&amp;nbsp; This will help us update data while minimizing impact to clients.&lt;/P&gt;
&lt;P&gt;Road:&amp;nbsp;&amp;nbsp;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=98770" mce_href="http://go.microsoft.com/fwlink/?LinkID=98770"&gt;http://go.microsoft.com/fwlink/?LinkID=98770&lt;/A&gt;&lt;BR&gt;Aerial:&amp;nbsp;&amp;nbsp;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=98771" mce_href="http://go.microsoft.com/fwlink/?LinkID=98771"&gt;http://go.microsoft.com/fwlink/?LinkID=98771&lt;/A&gt;&lt;BR&gt;Hybrid:&amp;nbsp;&amp;nbsp;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=98772" mce_href="http://go.microsoft.com/fwlink/?LinkID=98772"&gt;http://go.microsoft.com/fwlink/?LinkID=98772&lt;/A&gt;&lt;BR&gt;DEM:&amp;nbsp;&amp;nbsp;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=98774" mce_href="http://go.microsoft.com/fwlink/?LinkID=98774"&gt;http://go.microsoft.com/fwlink/?LinkID=98774&lt;/A&gt;&lt;BR&gt;Models:&amp;nbsp;&amp;nbsp;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=98775" mce_href="http://go.microsoft.com/fwlink/?LinkID=98775"&gt;http://go.microsoft.com/fwlink/?LinkID=98775&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Edit:&amp;nbsp; took down the traffic link.&amp;nbsp; If you are interested in traffic data, please see here:&amp;nbsp; &lt;A href="http://msdn.microsoft.com/en-us/library/bb877877.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb877877.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9534085" 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/DataSource/default.aspx">DataSource</category></item><item><title>Logging</title><link>http://blogs.msdn.com/virtualearth3d/archive/2009/04/05/logging.aspx</link><pubDate>Mon, 06 Apr 2009 00:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9532481</guid><dc:creator>NikolaiF</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/9532481.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=9532481</wfw:commentRss><description>&lt;P&gt;At times it can be useful to know when and if errors are occurring in VE3D.&amp;nbsp; When instructed, VE3D produces a log file that can be helpful for diagnosis.&amp;nbsp; This requires editing the user.config file and adding an entry:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;setting name="Logging" serializeAs="String"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;True&amp;lt;/value&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/setting&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;The user.config file is located at:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;(Vista) C:\Users\{username}\AppData\LocalLow\Microsoft\Virtual Earth 3D&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;(XP) C:\Documents and Settings\{username}\Application Data\Microsoft\Virtual Earth 3D&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Log files are generated at:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;(Vista) C:\Users\{username}\AppData\LocalLow\Microsoft\Virtual Earth 3D&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;(XP) C:\Documents and Settings\{username}\Local Settings\Application Data\Microsoft\Virtual Earth 3D&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To increase the verbosity of logs, add another entry to user.config:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;setting name="LoggingLevel" serializeAs="String"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;2&amp;lt;/value&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/setting&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The values are like so:&lt;/P&gt;
&lt;P&gt;0:&amp;nbsp; Critical errors only.&amp;nbsp; These errors may affect users.&lt;BR&gt;1:&amp;nbsp; Warnings only.&amp;nbsp; These are errors that are handled internally and should not affect users.&lt;BR&gt;2:&amp;nbsp; Informational.&amp;nbsp; These are not errors, but can be useful in some cases for debugging.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9532481" 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/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category></item><item><title>Controlling Time</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/10/05/controlling-time.aspx</link><pubDate>Sun, 05 Oct 2008 22:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8977220</guid><dc:creator>NikolaiF</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8977220.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8977220</wfw:commentRss><description>&lt;P&gt;&lt;IMG title="Sunrise in New York" style="WIDTH: 825px; HEIGHT: 596px" height=596 alt="Sunrise in New York" src="http://www.veteam.members.winisp.net/Spaceland/Samples/Time/sample.jpg" width=825 mce_src="http://www.veteam.members.winisp.net/Spaceland/Samples/Time/sample.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Today we show a little of the "Time" sample.&amp;nbsp;&amp;nbsp;&amp;nbsp;It demonstrates how to use the concepts of rendering time and world time.&lt;/P&gt;
&lt;P&gt;In any rendering or simulation engine it is important to understand the system's concepts of time.&amp;nbsp; VE3D uses two time concepts.&amp;nbsp; The first is "rendering time", which is a time value specified at the beginning of each frame that should be used for all animation that frame.&amp;nbsp; This value enables synchronization of all animation in the system, and accounts for things like changes in frame rate. The second is "world time", which is the time of day that is used in the system.&amp;nbsp; Using this value enables everything that depends on time of day to be synchronized.&lt;/P&gt;
&lt;P&gt;Both values can also be overridden.&amp;nbsp; Rendering time can be overridden by replacing the "TimeStep"&amp;nbsp;with a custom step.&amp;nbsp; This is useful when, for example, recording a movie of an expensive animation.&amp;nbsp; Smooth animation and framerate can be achieved despite the fact that the animation itself may be&amp;nbsp;too expensive to render in realtime.&amp;nbsp; Demonstrated in this sample is overriding world time to affect the sun and stars.&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Time Sample" href="http://www.veteam.members.winisp.net/Spaceland/Samples/Time/TestPage.htm" target=_blank mce_href="http://www.veteam.members.winisp.net/Spaceland/Samples/Time/TestPage.htm"&gt;Click here to see it in action.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;There are two modes to this sample page.&amp;nbsp; The first simply speeds up time.&amp;nbsp; The second rapidly changes the day, but not the time of day, so, you will see the position of the sun at 9 am as the seasons change.&amp;nbsp; Fun things to notice:&amp;nbsp; the stars move (the constellations are correct, too), the sun moves, shadows move, clouds change color, and there are pretty sunsets and sunrises.&amp;nbsp; All this goodness is built in to the new version, but you can only get them if you play with time through the managed control.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx" mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx"&gt;Get the code&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8977220" 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/Plug-In/default.aspx">Plug-In</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category></item><item><title>Current Samples</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx</link><pubDate>Thu, 25 Sep 2008 20:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8965316</guid><dc:creator>NikolaiF</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8965316.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8965316</wfw:commentRss><description>&lt;P&gt;Here's the newest, most whiz-bang sample set we've got right at the moment.&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Get The Samples!" href="http://www.veteam.members.winisp.net/Spaceland/blog/VE3D_Samples_v4.zip" mce_href="http://www.veteam.members.winisp.net/Spaceland/blog/VE3D_Samples_v4.zip"&gt;Download&amp;nbsp;The Samples!&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.veteam.members.winisp.net/Spaceland/Samplesv4/TestPage.htm" target=_blank mce_href="http://www.veteam.members.winisp.net/Spaceland/Samplesv4/TestPage.htm"&gt;See The Samples!&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;For the future, whenever we update the sample set we will update this post, to save you (and us) from having to slog through out-of-date links.&lt;/P&gt;
&lt;P&gt;Updated&amp;nbsp;April 9, 2009.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Current Control Version:&amp;nbsp; 4.0&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8965316" 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/Plug-In/default.aspx">Plug-In</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category></item><item><title>New Version of VE3D</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/new-version-of-ve3d.aspx</link><pubDate>Thu, 25 Sep 2008 20:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8965277</guid><dc:creator>NikolaiF</dc:creator><slash:comments>17</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8965277.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8965277</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;You may have noticed that we have not blogged recently, and that’s because we’ve been hard at work on the next version of Virtual Earth 3D.&amp;nbsp; The new version features some rendering improvements for the general user, but the most exciting part is for devs (well, that's what we think, but we ARE devs). &amp;nbsp;We have enabled partial trust plug-ins, which means you can put your plug-in on the web, create a page that references it, and users can go see it without having to install anything more than the basic VE3D control.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Behind the scenes, we load your plug-in’s dll to the client and execute it with a limited set of permissions.&amp;nbsp; For example, the plug-in cannot access the file system on its own, but you can still do custom rendering and control like you could before.&amp;nbsp; We’ve updated all the samples you’ve seen so far to run like this, except for the x file loader and the shortcut key (which was an example of how to install one, and is still a valid scenario in some cases).&amp;nbsp; We’ve also added a few new samples to show some new functionality and demonstrate some stuff that’s been there for awhile but we hadn’t gotten a chance to show yet.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Existing code built against VE3D will need to be recompiled, and in some cases we’ve moved a few properties around.&amp;nbsp; The samples should cover most of these changes, but please comment or send us feedback on items that you have trouble with.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;A class="" href="http://maps.live.com/" mce_href="http://maps.live.com/"&gt;Get the new version!&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;A class="" href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx" mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx"&gt;Get the new samples!&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8965277" 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/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category></item><item><title>Animation</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/07/08/animation.aspx</link><pubDate>Wed, 09 Jul 2008 00:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8709951</guid><dc:creator>NikolaiF</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8709951.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8709951</wfw:commentRss><description>&lt;P&gt;Note:&amp;nbsp;&amp;nbsp;this entry references code for an older version of VE3D.&amp;nbsp; The newest code samples are &lt;A class="" href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx" mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Smoothly animated objects make for a more compelling 3D world, and in this entry we'll learn about using them.&amp;nbsp; In the X File entry, the model that we loaded could be rotated around a point.&amp;nbsp; This is pretty easy, but is limited.&amp;nbsp; You can move the model around, rotate it, make it bigger or smaller, but can't change its basic shape and appearance.&amp;nbsp; For complex animations like that, you may need to change the actual vertices or indices used to draw the model.&amp;nbsp; To support that, we have the concept of dynamic buffers.&amp;nbsp; These are buffers that are expected to be frequently recalculated, and are internally handled to make that more efficient.&amp;nbsp; The attached sample shows how to use this in SurfaceActor, but it's pretty much the same as using static buffers.&amp;nbsp; The only difference is that we Set the values in the buffer in every call to Update rather than just Add them once.&lt;FONT size=3&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://auldane.members.winisp.net/msdn/BezierSurface.zip" mce_href="http://auldane.members.winisp.net/msdn/BezierSurface.zip"&gt;Get The Code.&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;EMBED pluginspage=http://macromedia.com/go/getflashplayer src=http://images.video.msn.com/flash/soapbox1_1.swf width=432 height=364 type=application/x-shockwave-flash flashvars="c=v&amp;amp;v=148e3d0c-1365-4da9-98fe-e3ce8667066e&amp;amp;ifs=true&amp;amp;fr=msnvideo&amp;amp;mkt=en-US&amp;amp;brand=" allowScriptAccess="always" allowFullScreen="true" base="http://images.video.msn.com" quality="high" mce_src="http://images.video.msn.com/flash/soapbox1_1.swf"&gt;&lt;/EMBED&gt;&lt;BR&gt;&lt;A title="Bezier Surface in Virtual Earth 3D" href="http://video.msn.com/video.aspx?vid=148e3d0c-1365-4da9-98fe-e3ce8667066e" target=_new mce_href="http://video.msn.com/video.aspx?vid=148e3d0c-1365-4da9-98fe-e3ce8667066e"&gt;Video: Bezier Surface in Virtual Earth 3D&lt;/A&gt; 
&lt;P&gt;When the code is normally running it does not draw a new frame as frequently as it could.&amp;nbsp; This is to conserve CPU and other resources on the client machine when nothing is really happening.&amp;nbsp; But when animating, this presents a problem because the aniamtion can look stuttery and inconsistent.&amp;nbsp; The solution is to tell the system it needs to draw more frequently by calling &lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;Host.NeedUpdate();&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;This can be called as many times per frame as you like, and simply sets a flag telling the system to render the next frame as soon as possible.&amp;nbsp; It's a good idea to only call this when you have an animation actively running.&amp;nbsp; In this case, it is called only when a ControlPoint is actually changing.&lt;/P&gt;
&lt;P&gt;This sample also has some code demonstrating more usage of bindings to control user input in a custom fashion, similar to the Geometry sample but a little more complex.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8709951" 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/Plug-In/default.aspx">Plug-In</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category></item><item><title>New Intellisense Files</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/07/08/new-intellisense-files.aspx</link><pubDate>Wed, 09 Jul 2008 00:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8709852</guid><dc:creator>NikolaiF</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8709852.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8709852</wfw:commentRss><description>&lt;P&gt;Note:&amp;nbsp;&amp;nbsp;this entry references code for an older version of VE3D.&amp;nbsp; The newest code samples are &lt;A class="" href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx" mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Some entries were missing or incomplete from the xml intellisense files in the samples zip in the &lt;A class="" href="http://blogs.msdn.com/virtualearth3d/archive/2008/04/11/adding-a-virtual-earth-3d-plug-in-to-your-webpage.aspx" mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/04/11/adding-a-virtual-earth-3d-plug-in-to-your-webpage.aspx"&gt;first post&lt;/A&gt; of this blog.&amp;nbsp; I've posted a zip of the &lt;A class="" href="http://auldane.members.winisp.net/msdn/Intellisense.zip" mce_href="http://auldane.members.winisp.net/msdn/Intellisense.zip"&gt;new xml files&lt;/A&gt;, and updated the &lt;A class="" href="http://auldane.members.winisp.net/msdn/Samples.zip" mce_href="http://auldane.members.winisp.net/msdn/Samples.zip"&gt;samples zip&lt;/A&gt;&amp;nbsp;itself.&amp;nbsp; Just unzip the file and drop the new xml files in Program Files/Virtual Earth 3D.&amp;nbsp; You'll need to restart Visual Studio to see them.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8709852" 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/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category></item><item><title>Loading a model into VE3D</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/05/27/loading-a-model-into-ve3d.aspx</link><pubDate>Tue, 27 May 2008 22:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8555390</guid><dc:creator>NikolaiF</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8555390.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8555390</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;FONT face=Arial size=2&gt;Note:&amp;nbsp;&amp;nbsp;this entry references code for an older version of VE3D.&amp;nbsp; The newest code samples are &lt;/FONT&gt;&lt;A class="" href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx" mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx"&gt;&lt;FONT face=Arial size=2&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Commonly the models seen in any 3D product are created using specialized software packages, exported to a file, and then loaded into the end product.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unfortunately this version of Virtual Earth 3D does not yet have full support for this process, but by being a little more adventurous (than you already are), you can do it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" align=center&gt;&lt;FONT face=Calibri size=3&gt;&lt;IMG title="An x file in Virtual Earth 3D" style="WIDTH: 789px; HEIGHT: 374px" height=374 alt="An x file in Virtual Earth 3D" src="http://auldane.members.winisp.net/msdn/XFile.jpg" width=789 mce_src="http://auldane.members.winisp.net/msdn/XFile.jpg"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Although in theory the mechanisms in place in VE3D for specifying vertex buffers, index buffers, materials, etc, could be used to import most file formats by writing the converter yourself, most people don’t want to do that, especially given how complex the formats can be.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Until such mechanisms are solidly in place, we will use DirectX’s ability to read X files, as exposed by one of our internal classes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;We’ll convert that using relatively simple code into a MeshGraphicsObject (the same as used in SimpleObjectPlacement), wrap it in an Actor, and add it to our world.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The code shows how to do simple intersection tests against the mesh and animate it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We also demonstrate one way to do labeling of objects.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;A class="" title="Sample Code" href="http://auldane.members.winisp.net/msdn/XFile.zip" mce_href="http://auldane.members.winisp.net/msdn/XFile.zip"&gt;Get Sample Code&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=4&gt;Will it break?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;There’s an important point to be made here:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;the whole API here is officially “unsupported”, which mostly means that we are happy to help you here on the blog, but we don’t, for example, have official documentation on MSDN.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;One reason we’re not calling it official is that we’re still working on refining the code, and we do expect to make changes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We’d prefer not to break anyone, but if we need to change things in order to make it easier to not break you later – once that word changes to “supported” -- we’ll do it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Only part of the code is going to be supported even after we flip that switch, specifically the assemblies that have been referenced in the samples we’ve released so far.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In this sample, we reference Graphics3D, which is considered an internal assembly.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can still reference things there, and they’ll work, but they’ll be harder to use, the documentation will be thinner, and the chances of breaking changes happening across versions will be higher.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In short, everything now is “use at your own risk”, but some things are riskier than others, and this sample is in that category.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When we do break things we will release information on this blog about how to fix them, and update our samples as well.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8555390" 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/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/X+File/default.aspx">X File</category></item><item><title>Basic Math</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/05/06/basic-math.aspx</link><pubDate>Tue, 06 May 2008 19:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8463463</guid><dc:creator>Heptazane</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8463463.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8463463</wfw:commentRss><description>&lt;P&gt;When working with things that exist on the globe, there is a fair bit of basic math that complicates your life.&amp;nbsp; Let's start of with a mesh that you want to add to the Earth.&amp;nbsp; We recommend that you orient your mesh so that it is facing along the Y axis, Z is up, and X is to the right, as shown with this car.&amp;nbsp;&amp;nbsp;While you can do your own thing, this will simplify using RollPitchYaw later, which is the most common way&amp;nbsp;that we orient things locally.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG title="Recommended local coordinates." style="WIDTH: 155px; HEIGHT: 181px" height=181 alt="Recommended local coordinates." src="http://www.veteam.members.winisp.net/Images/RollPitchYaw.png" width=155 mce_src="http://www.veteam.members.winisp.net/Images/RollPitchYaw.png"&gt;&lt;/P&gt;
&lt;P&gt;Now the object needs to be placed on the Earth which involves transforming it from it's local space, onto the globe.&amp;nbsp; The globe is a &lt;A href="http://en.wikipedia.org/wiki/WGS84" mce_href="http://en.wikipedia.org/wiki/WGS84"&gt;WGS84&lt;/A&gt; ellipsoid that is laid out as shown in this image.&amp;nbsp; Note that the Z axis points up through the North Pole, and the X axis points out through latitude\longitude 0,0 (just south of Ghana in the Atlantic).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;IMG title="Structure of the globe" style="WIDTH: 289px; HEIGHT: 353px" height=353 alt="Structure of the globe" src="http://www.veteam.members.winisp.net/Images/StructureOfTheGlobe.png" width=289 mce_src="http://www.veteam.members.winisp.net/Images/StructureOfTheGlobe.png"&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;So if your object is placed on this globe and&amp;nbsp;it has a local yaw of 0, it will be facing North.&amp;nbsp; If it has a local pitch of 0, it will be looking horizontally... approximately at the horizon.&amp;nbsp; If your local orientation remains the same, but the position of the object changes on the surface of the globe, the&amp;nbsp;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'"&gt;global&lt;/SPAN&gt;&lt;/I&gt; orientation of the object will change.&amp;nbsp; To assist in the manipulation of position, local orientation, and global orientation, we provide the Microsoft.MapPoint.Rendering3D.Cameras.GeodeticViewpoint class.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;This class automatically handles the conversions, for example:&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;// Set up the viewpoint with a position and local orientation.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;GeodeticViewpoint&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; viewpoint = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;GeodeticViewpoint&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;BR&gt;viewpoint.Position.Location = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;LatLonAlt.CreateUsingDegrees&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(33, -97, 10000); &lt;FONT color=#008000&gt;// Someplace over Dallas&lt;/FONT&gt;&lt;BR&gt;viewpoint.LocalOrientation.RollPitchYaw = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;RollPitchYaw&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(0, 0, 90.0 * &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Constants&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.RadiansPerDegree);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;// Ask for the global orientation.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;LookAtLookUp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; globalOrientation = viewpoint.Orientation.LookAtLookUp;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;Note that the local yaw is set to 90 degrees which will face West.&amp;nbsp; The reason is that RollPitchYaw represents a rotation around the Y, X, and Z axes respectively.&amp;nbsp; So a Yaw rotation is&amp;nbsp;the left most diagram below.&amp;nbsp; This diagram holds for any use of Matrix4x4D.RotationX, Y, or Z, and can be useful in mentally visualizing how you're rotating in our coordinate space.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG title=Rotation style="WIDTH: 407px; HEIGHT: 165px" height=165 alt=Rotation src="http://www.veteam.members.winisp.net/Images/Rotation.png" width=407 mce_src="http://www.veteam.members.winisp.net/Images/Rotation.png"&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The GeodeticViewpoint class has a bunch of helper properties on it, for example you can adjust just the altitude on the viewpoint, and anything that depends on that change will cascade out:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;viewpoint.Position.Altitude = 500;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Also, one of the things that using the viewpoint also saves you is that calculating the exact X,Y,Z coordinate from the latitude/longitude/altitude that you provided which is quite tricky since we use WGS84.&amp;nbsp; However GeodeticViewpoint makes that easy:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Vector3D&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; coordinate = viewpoint.Position.Vector;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;
&lt;P&gt;I've shown a lot of random tidbits above, and included diagrams from bits of "cheat sheet" that I made up for developers here.&amp;nbsp; If there are parts that don't make sense, feel free to comment.&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8463463" 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/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Math/default.aspx">Math</category></item><item><title>Installing Plug-Ins</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/05/01/installing-plug-ins.aspx</link><pubDate>Thu, 01 May 2008 20:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8447272</guid><dc:creator>NikolaiF</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8447272.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8447272</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;FONT face=Arial size=2&gt;Note:&amp;nbsp;&amp;nbsp;this entry references code for an older version of VE3D.&amp;nbsp; The newest code samples are &lt;/FONT&gt;&lt;A class="" href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx" mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx"&gt;&lt;FONT face=Arial size=2&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt;.&lt;/FONT&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Some types of plug-ins feature special data or rendering, and are intended to be used with a particular website.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Others are intended to enhance the experience of all websites, and run every time a user runs VE3D.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Most of the samples given so far have been about the former, where the test html page references the plug-in you wish to load.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Today we’ll talk about the latter.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In addition, there is currently a limitation that plug-ins must be installed in the GAC in order to run.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is true regardless of what category the plug-in falls under.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;End users of a plug-in will need a way of installing the plug-in.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Fortunately writing an installer is easy with Visual Studio.&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;A class="" title="The Code" href="http://kristoffer.members.winisp.net/VE3D/SetupSample.zip" mce_href="http://kristoffer.members.winisp.net/VE3D/SetupSample.zip"&gt;The Code&lt;/A&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;A class="" title="Download Shortcut Key Plug-In" href="http://kristoffer.members.winisp.net/VE3D/ShortcutPlugInSetup.exe" mce_href="http://kristoffer.members.winisp.net/VE3D/ShortcutPlugInSetup.exe"&gt;Download Shortcut Key Plug-In&lt;/A&gt;&lt;/FONT&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The first link contains the source code for the plug-in itself and the deployment project.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The plug-in is set up to run in a test page just like the others, but the intended way to use this solution is to build PlugInSetup.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That project will take the output of the plug-in project, add it to an MSI along with some appropriate verbiage, and a setup.exe bootstrapper to run the MSI.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Once those are built, the setup.exe and MSI combination can be distributed to end users.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In my case, I created a self-extracting zip archive – the output is the second link. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Visual Studio won’t do this directly, so use your favorite tool to create a nice single package for users.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This method doesn’t necessarily create the most elegant installer, and any installer package that has the same features could be used, but this one works and is easy to use. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The important parts of the PlugInSetup projects are the files to include and the various text messages to display.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Right click on the project name, and select View -&amp;gt; File System.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The file locations we’d like to install to are shown.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In order to run an automatically-running plug-in, we must install to a special location under VE3D’s install path, as seen here.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A plug-in that loads on demand, as from a custom website, would install to its own Program Files directory.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For this plug-in, there are no user-specific resources so all users will be able to use the plug-in when they run VE3D.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG title="Adding output to Program Files" style="WIDTH: 782px; HEIGHT: 378px" height=378 alt="Adding output to Program Files" src="http://kristoffer.members.winisp.net/VE3D/applicationfolder.png" width=782 mce_src="http://kristoffer.members.winisp.net/VE3D/applicationfolder.png"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;We also must add our plug-in to the Global Assembly Cache.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This can be seen below.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG title="Adding output to the GAC." style="WIDTH: 591px; HEIGHT: 183px" height=183 alt="Adding output to the GAC." src="http://kristoffer.members.winisp.net/VE3D/GAC.png" width=591 mce_src="http://kristoffer.members.winisp.net/VE3D/GAC.png"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;New files may be added to both by right clicking in the right-hand side of the main view, and new locations may be added by right-clicking in the left-hand side.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;We may also modify various items like author name and contact info by clicking on the PlugInSetup project and looking at the properties page.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;IMG title="Deployment Project Properties page" style="WIDTH: 484px; HEIGHT: 464px" height=464 alt="Deployment Project Properties page" src="http://kristoffer.members.winisp.net/VE3D/properties.png" width=484 mce_src="http://kristoffer.members.winisp.net/VE3D/properties.png"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The plug-in itself is a simple project to remember camera viewpoints and fly back to them when the user presses a key.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It has no UI elements except for notifications on error, which is desirable for a plug-in that will always be run.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Ideally, some form of instruction for the user would appear on startup or during the install but for now we are keeping it simple.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To save a viewpoint, hold shift and then press a number key from 1 to 4.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To return to that viewpoint, even after restarting the app, press the same number key again, this time without holding shift.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To reset all the views, press 0.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The project uses the bindings system with a config file, meaning that end users may change the keys used by editing the ShortcutBindings.xml file (see the code for comments on the location of this file).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It also uses IsolatedStorage for safe persistence of data, unique to the plug-in and user (so different users may have different saved views).&amp;nbsp; The code has comments that hopefully explain what's going on, but some of it, bindings especially, will be a topic for a future post.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Enjoy!&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8447272" 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/Plug-In/default.aspx">Plug-In</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category></item><item><title>Creating the most basic Windows Form</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/04/19/creating-the-most-basic-windows-form.aspx</link><pubDate>Sat, 19 Apr 2008 22:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8410366</guid><dc:creator>Heptazane</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8410366.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8410366</wfw:commentRss><description>&lt;P&gt;Note:&amp;nbsp;&amp;nbsp;this entry references code for an older version of VE3D.&amp;nbsp; The newest code samples are &lt;A class="" href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx" mce_href="http://blogs.msdn.com/virtualearth3d/archive/2008/09/25/current-samples.aspx"&gt;here&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The samples that can be downloaded below demonstrate creating a basic Windows&amp;nbsp;Application&amp;nbsp;with&amp;nbsp;a VE3D control on it (SimpleForm), however, I&amp;nbsp;wanted to go over the most basic steps.&amp;nbsp; The sample does not use&amp;nbsp;the&amp;nbsp;Toolbox,&amp;nbsp;but I will.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 1:&lt;/STRONG&gt; Make sure the VE3D control is installed by visiting &lt;A href="http://maps.live.com/" mce_href="http://maps.live.com/"&gt;http://maps.live.com&lt;/A&gt; and switching to 3D.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 2:&lt;/STRONG&gt; Select Tools-&amp;gt;Choose Toolbox Items...&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 3:&lt;/STRONG&gt; Make sure GlobeControl is checked in .NET Framework Components tab.&amp;nbsp; The version should be 2.0.711.13001.&amp;nbsp; GlobeControl should now show up in your Toolbox under the General section with a gear icon next to it.&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Choose Toobox Items dialog" style="WIDTH: 573px; HEIGHT: 405px" height=405 alt="Choose Toobox Items dialog" src="http://veteam.members.winisp.net/Images/ToolboxItems.png" width=573 align=middle mce_src="http://veteam.members.winisp.net/Images/ToolboxItems.png"&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 4:&lt;/STRONG&gt; Create a new C# Windows Application in Visual Studio 2005.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 5:&lt;/STRONG&gt; Select GlobeControl from your Toolbox and drop it onto your form.&amp;nbsp; It should show up with just a big, grey dot in the middle and "GlobeControl" written across it.&amp;nbsp; This is just the designer view.&amp;nbsp; If you run the application at this point, you'll see the globe in 3D, but only with the outer most model and if you zoom in you'll just get fuzzy green.&amp;nbsp; The reason is that we haven't set up any data sources yet, so...&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 6:&lt;/STRONG&gt; Make sure your form is selected (not the GlobeControl) and add a Load event (select the lightening bolt for events in the Properties pane, find Load and double click on it).&amp;nbsp; Make sure it looks like this:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;private&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; Form1_Load(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;EventArgs&lt;/FONT&gt;&lt;FONT size=2&gt; e)&lt;BR&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT size=2&gt;.globeControl1.Host.DataSources.Add(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;DataSourceLayerData&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Elevation"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Elevation"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;@"http://maps.live.com//Manifests/HD.xml"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;DataSourceUsage&lt;/FONT&gt;&lt;FONT size=2&gt;.ElevationMap));&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT size=2&gt;.globeControl1.Host.DataSources.Add(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;DataSourceLayerData&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Texture"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Texture"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;@"http://maps.live.com//Manifests/HT.xml"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;DataSourceUsage&lt;/FONT&gt;&lt;FONT size=2&gt;.TextureMap));&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT size=2&gt;.globeControl1.Host.DataSources.Add(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;DataSourceLayerData&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Models"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Models"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;@"http://maps.live.com//Manifests/MO.xml"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;DataSourceUsage&lt;/FONT&gt;&lt;FONT size=2&gt;.Model));&lt;BR&gt;}&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;STRONG&gt;Step 7:&lt;/STRONG&gt; To use the DataSource classes, you'll need to right-click on your project's references and select Add Reference..., select the Browse tab and browse to "C:\Program Files\Virtual Earth 3D".&amp;nbsp; Select "Microsoft.MapPoint.Data" and "Microsoft.MapPoint.Rendering3D.Utility" and hit OK.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 8:&lt;/STRONG&gt; Run your application and enjoy! &lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;FONT color=#800080&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 306px" height=306 src="http://veteam.members.winisp.net/Images/FinalApp.png" width=450 align=middle mce_src="http://veteam.members.winisp.net/Images/FinalApp.png"&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Definitely look at the samples for more goodness, but these are the basic steps to get started.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8410366" 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/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Windows+Forms/default.aspx">Windows Forms</category></item><item><title>Geometry</title><link>http://blogs.msdn.com/virtualearth3d/archive/2008/04/19/geometry.aspx</link><pubDate>Sat, 19 Apr 2008 03:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8409400</guid><dc:creator>NikolaiF</dc:creator><slash:comments>16</slash:comments><comments>http://blogs.msdn.com/virtualearth3d/comments/8409400.aspx</comments><wfw:commentRss>http://blogs.msdn.com/virtualearth3d/commentrss.aspx?PostID=8409400</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The first thing that most people want to do when playing with the 3D control is add some stuff to the world.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The most straightforward way to do this is via the Geometry Manager, accessible from Host.Geometry.&amp;nbsp; You can modify any of the samples to contain this code, most easily in the Activate function of a plug-in or OnLoad for SimpleForm.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Host.Geometry.AddGeometry(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;PushpinGeometry&lt;/SPAN&gt;(&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;"My Layer"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"My Id"&lt;/SPAN&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;LatLonAlt&lt;/SPAN&gt;.CreateUsingDegrees(-47.6435, 112.1422, 100.0),&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;PushpinInfo&lt;/SPAN&gt;.Default));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;This creates a default pin on top of Microsoft Building 116 in Redmond, WA, just in case you were wondering where&amp;nbsp;that is.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The first two parameters are just identifiers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can use Layers to group items together, but it's not required.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The two strings together just have to be unique.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The third parameter is the position of the pin&amp;nbsp;in Latitude, Longitude, Altitude.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here we’re using degrees in WGS84, and meters for the altitude.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Let me digress on units for a moment.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Notice that latitude, which is the “Y” component of the coordinate, comes first.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is a long-standing convention when specifying geographic coordinates, but for our purposes is somewhat arbitrary.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In other contexts, for example when we use a Coordinate2D struct, which is a more general-use structure not tied to a specific coordinate system, we’ll follow the mathematical convention of “X” first.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Also, values of latitude and longitude are technically angles (from the equator and around the polar axis, respectively).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When dealing with angles in computers it is convenient to store them as radians, which is how most trigonometric functions deal with them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However, degrees are usually easier to think about.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So here we create the structure explicitly in degrees to reduce confusion.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you ever have trouble with your pushpin not appearing, the first thing to check is the order of your values and their units.&amp;nbsp; We use meters for distances and altitudes, but the exact meaning of altitude can change depending on what AltitudeMode you are associating with the geometry.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Back to the pushpin, next we’ll want to change how it appears.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you pull the PushpinInfo.Default object into a local variable, you can then modify the various provided values, leaving others as they are.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;PushpinInfo&lt;/SPAN&gt; info = &lt;SPAN style="COLOR: #2b91af"&gt;PushpinInfo&lt;/SPAN&gt;.Default;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info.Resource = &lt;SPAN style="COLOR: #a31515"&gt;&lt;A href="http://kristoffer.members.winisp.net/VE3D/jewel.png" mce_href="http://kristoffer.members.winisp.net/VE3D/jewel.png"&gt;http://kristoffer.members.winisp.net/VE3D/jewel.png&lt;/A&gt;&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;info.OrientationMode = &lt;SPAN style="COLOR: #2b91af"&gt;PushpinOrientationMode&lt;/SPAN&gt;.UseProvided;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info.Orientation = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;Orientation&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;RollPitchYaw&lt;/SPAN&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0.0,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;20 * &lt;SPAN style="COLOR: #2b91af"&gt;Constants&lt;/SPAN&gt;.RadiansPerDegree,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;45 * &lt;SPAN style="COLOR: #2b91af"&gt;Constants&lt;/SPAN&gt;.RadiansPerDegree));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Host.Geometry.AddGeometry(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;PushpinGeometry&lt;/SPAN&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;"My Layer"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"My Id"&lt;/SPAN&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;LatLonAlt&lt;/SPAN&gt;.CreateUsingDegrees(47.6435, -122.1422, 10.0),&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;In this case we’ve added a pretty logo over the same building rather than using the default orange pin, and told it to use a specific orientation instead of always facing the camera.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Roll/Pitch/Yaw (RPY) is in degrees, but we can convert using some constants.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Think of the image as a face, with the nose pointing straight out of the middle of it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you supply a RPY of (0, 0, 0) the face will point north, toward the horizon, with the head level.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Rolling will be like tilting the head sideways towards the shoulders, pitch is like looking up and down, and yaw is looking side to side.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In this case, we are looking slightly up and to the northwest.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can combine the values with values from the camera to get interesting effects by setting OrientationMode.&amp;nbsp; AltitudeMode is set here, to control the exact meaning of the altitude component of its position.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The two other basic types of geometry are PolylineGeometry and PolygonGeometry.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Their setup is similar, except that you will provide arrays of LatLonAlt values.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There are also two distinct categories of each, those that are drawn on the ground and those drawn in the air.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;Host.Geometry.AddGeometry(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;PolygonGeometry&lt;/SPAN&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;"My Layer"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"My Poly"&lt;/SPAN&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;LatLonAlt&lt;/SPAN&gt;[] { &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;LatLonAlt&lt;/SPAN&gt;.CreateUsingDegrees(47.6435, -122.1422, 0.0),&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;LatLonAlt&lt;/SPAN&gt;.CreateUsingDegrees(47.645, -122.1422, 0.0),&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;LatLonAlt&lt;/SPAN&gt;.CreateUsingDegrees(47.645, -122.1412, 0.0),&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;LatLonAlt&lt;/SPAN&gt;.CreateUsingDegrees(47.6435, -122.1412, 0.0) },&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;PolygonGeometry&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #2b91af"&gt;PolygonFormat&lt;/SPAN&gt;.Polygon2D,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;PolyInfo&lt;/SPAN&gt;.DefaultPolyline));&lt;/SPAN&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The Format parameter specifies what type they should be, and altitude values will be ignored for 2D versions (note:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;LineList2D is currently not supported, but the rest all have their uses).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The third parameter here is a “tag”, which is something that can be used when your user is interacting with your objects via the mouse.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In the Geometry sample you can see some of these ideas (and a few other things) in play.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8409400" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Virtual+Earth/default.aspx">Virtual Earth</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Code/default.aspx">Code</category><category domain="http://blogs.msdn.com/virtualearth3d/archive/tags/Virtual+Earth+3D/default.aspx">Virtual Earth 3D</category></item></channel></rss>