<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Simplovation Blog</title>
    <description>Company News and Support Articles</description>
    <link>http://blog.simplovation.com/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://blog.simplovation.com/blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Simplovation LLC</dc:creator>
    <dc:title>Simplovation Blog</dc:title>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/simplovation" type="application/rss+xml" /><item>
      <title>Bing Maps for Enterprise and Web.Maps.VE ASP.NET AJAX Virtual Earth Server Control</title>
      <description>&lt;p&gt;
&lt;img src="http://blog.simplovation.com/blog/image.axd?picture=2009%2f5%2fBing.png" alt="Bing" title="Bing" align="right" /&gt;Yesterday, Microsoft announced that its Live Search, Live Search Maps and Virtual Earth products will be rebranded to be under the &amp;quot;Bing&amp;quot; product name / branding. Live Search Maps will now be called Bing Maps, and Microsoft Virtual Earth will now be called &amp;quot;Bing Maps for Enterprise.&amp;quot;
&lt;/p&gt;
&lt;h3&gt;How does this relate to Simplovation and Web.Maps.VE?&lt;/h3&gt;
&lt;p&gt;
Simply put, the transition from &amp;quot;Virtual Earth&amp;quot; to &amp;quot;Bing Maps for Enterprise&amp;quot; will be seamless. You will not need to download any updates from us to keep your maps working after the branding has changed. The Bing Maps for Enteprise JavaScript API will be downloaded from the existing URL that it is toda; the only difference is they will be changing the logo displayed on the map from &amp;quot;Virtual Earth&amp;quot; to say &amp;quot;Bing Maps&amp;quot; or &amp;quot;Bing Maps for Enterprise&amp;quot;.
&lt;/p&gt;
&lt;p&gt;
Also, we will not be making any breaking changes to Web.Maps.VE like changing the namespaces or product name. Web.Maps.VE v1.0 and v2.0 will remain &amp;quot;Web.Maps.VE&amp;quot; and the namespace will remain &amp;quot;Simplovation.Web.Maps.VE.&amp;quot; 
&lt;/p&gt;
&lt;p&gt;
More Information:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/virtualearth/archive/2009/05/28/rebranding-microsoft-virtual-earth-to.aspx"&gt;Rebranding Microsoft Virtual Earth To...&lt;/a&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/Xvva2T0Fkmc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/Xvva2T0Fkmc/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/Bing-Maps-for-Enterprise-and-WebMapsVE-ASPNET-AJAX-Virtual-Earth-Server-Control.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=0c9ed41f-50e3-45bc-b904-3cefac734ef3</guid>
      <pubDate>Fri, 29 May 2009 13:46:00 -0500</pubDate>
      <category>Support</category>
      <category>Web.Maps.VE v1.0</category>
      <category>Web.Maps.VE v2.0</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=0c9ed41f-50e3-45bc-b904-3cefac734ef3</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=0c9ed41f-50e3-45bc-b904-3cefac734ef3</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/Bing-Maps-for-Enterprise-and-WebMapsVE-ASPNET-AJAX-Virtual-Earth-Server-Control.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=0c9ed41f-50e3-45bc-b904-3cefac734ef3</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=0c9ed41f-50e3-45bc-b904-3cefac734ef3</feedburner:origLink></item>
    <item>
      <title>Web.Maps.VE v2.00.04 Update Released</title>
      <description>&lt;p&gt;
&lt;span&gt;Today we released the Web.Maps.VE v2.00.04 update release. This
release includes a few new features that have been asked for by our
customers, along with a couple of bug fixes.
&lt;a href="http://simplovation.com/Download/#WEBMAPSVE20TRIAL"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;&lt;a href="http://simplovation.com/Download/#WEBMAPSVE20TRIAL"&gt;Download Here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here&amp;#39;s a list of changes made in this update release:&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;New Features:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;MiniMapExtender Control JavaScript API
	- Added &amp;quot;SetHorizontalOffset&amp;quot; and &amp;quot;SetVerticalOffset&amp;quot; methods to the
	MiniMapExtender Control&amp;#39;s Client-Side JavaScript API. Their usage is
	mentioned in the &amp;quot;&lt;a href="http://blog.simplovation.com/blog/post.aspx?id=6a46a785-4def-4016-b3c4-0097b24595c6"&gt;Using the MiniMapExtender&lt;/a&gt;&amp;quot; Tutorial.&lt;/li&gt;
	&lt;li&gt;Easily
	Resize the Map from Server-Side .NET or Client-Side JavaScript code -
	Added the capability for the Map controls Height and Width to get
	passed to/from the client and server during an asynchronous postback.
	Now when you change the Height or Width it will get reflected in the
	Map on the client. This release also added the &amp;quot;GetWidth&amp;quot; and
	&amp;quot;GetHeight&amp;quot; JavaScript API methods and fixed the &amp;quot;Resize&amp;quot; method so you
	can eaily and correctly resize the Map from within JavaScript. Both
	Server-Side and Client-Side examples have been added to the Sample
	Website.&lt;/li&gt;
	&lt;li&gt;Color.FromHtml Method - The FromHtml static/shared
	method has been added to the Simplovation.Web.Maps.VE.Color object to
	allow for simple conversion from an HTML Color representation to the
	equivalent Simplovation.Web.Maps.VE.Color representation.&lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;
	&lt;li&gt;Removing
	Multiple ShapeLayers during Async Postback - An issue with using the
	Map.Layers.Remove(), Map.Layers.RemoveAt() and Map.Layers.RemoveAll()
	methods to remove multiple shape layers during the same asynchronous
	postback was fixed.&lt;/li&gt;
	&lt;li&gt;Rare Exception Thrown During
	Map.OnPreRender during Asynchronous Postbacks - Added an extra check
	that will reload the License file in case it happens to be Null during
	the OnPreRender method. Added some extra checks that will throw an
	exception with a meaningful message if the Page.Header happens to be
	Null.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;span&gt;You can view more details on each update release in the &lt;a href="http://simplovation.com/page/webmapsve20/roadmap.aspx"&gt;Web.Maps.VE v2.0 Product Roadmap&lt;/a&gt;.&lt;/span&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/fwem5XaYWi0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/fwem5XaYWi0/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/WebMapsVE-v20004-Update-Released.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=bd08ae9c-0e3b-487b-b3eb-5c21b0e0e878</guid>
      <pubDate>Tue, 19 May 2009 20:07:00 -0500</pubDate>
      <category>Web.Maps.VE v2.0</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=bd08ae9c-0e3b-487b-b3eb-5c21b0e0e878</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=bd08ae9c-0e3b-487b-b3eb-5c21b0e0e878</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/WebMapsVE-v20004-Update-Released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=bd08ae9c-0e3b-487b-b3eb-5c21b0e0e878</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=bd08ae9c-0e3b-487b-b3eb-5c21b0e0e878</feedburner:origLink></item>
    <item>
      <title>Support will be closed April 24 until May 4th, 2009</title>
      <description>&lt;span&gt;The Simplovation Support Services will be closed April 24th until May 4th, 2009. You are still free to post questions/answers in the
Forums, but we will be unable to post answers and reply to emails
during this time. Support will resume again on May 4th; at which time
we will work to get back to your questions as soon as we can. Also, all
sales inquiries will not be replied to until on or after May 4th.&lt;br /&gt;
&lt;br /&gt;
Thanks for your patients and understanding during this time.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;strong&gt;Chris Pietschmann&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;Owner, Simplovation LLC&lt;br /&gt;
Microsoft MVP - Windows Live Platform&lt;/em&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/sfvDpYiCQTA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/sfvDpYiCQTA/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/Support-will-be-closed-April-24-until-May-4th-2009.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=daa47803-6198-471c-8814-8fa9e231c891</guid>
      <pubDate>Thu, 23 Apr 2009 17:44:00 -0500</pubDate>
      <category>Support</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=daa47803-6198-471c-8814-8fa9e231c891</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=daa47803-6198-471c-8814-8fa9e231c891</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/Support-will-be-closed-April-24-until-May-4th-2009.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=daa47803-6198-471c-8814-8fa9e231c891</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=daa47803-6198-471c-8814-8fa9e231c891</feedburner:origLink></item>
    <item>
      <title>Web.Maps.VE v2.0 – Using UpdatePanel to Perform Asynchronous Operations</title>
      <description>&lt;p&gt;The &lt;a href="http://simplovation.com/page/webmapsve.aspx"&gt;Web.Maps.VE v2.0 ASP.NET AJAX Virtual Earth Mapping Control&lt;/a&gt; allows you to perform all you Map manipulations (moving the map, adding shape, loading driving directions, etc.) from within server-side .NET code. This is all fine when handling the Map’s own events, but what about using Buttons and Hyperlinks to perform manipulations? This tutorial will show you how to utilize the ASP.NET UpdatePanel control to be able to manipulate the Map during Server Control Events (such as OnClick).&lt;/p&gt;  &lt;h2&gt;Prerequisites&lt;/h2&gt;  &lt;p&gt;This tutorial assumes that you already have a basic understanding of how to place a Map on a Page within your ASP.NET Website or Web Application Project.&lt;/p&gt;  &lt;p&gt;If you need to get an overview of how to place a Map on the Page, then I recommend you go check out the “&lt;a href="http://blog.simplovation.com/blog/post.aspx?id=87d93337-e343-42f8-8b56-67f994a30814"&gt;Getting Started with Web.Maps.VE v2.0&lt;/a&gt;” tutorial.&lt;/p&gt;  &lt;h2&gt;Add Pushpin to the Map when user clicks on an ASP.NET Button or LinkButton Control&lt;/h2&gt;  &lt;p&gt;Once you have a Map control place on the page, you can then create an ASP.NET Button or LinkButton control and manipulate the Map during its OnClick Event. You can perform many different Map manipulations, including (but definitely not limited to) Adding Pushpins, Zooming In and Loading Driving Directions.&lt;/p&gt;  &lt;p&gt;You would define an ASP.NET Button like this:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Button&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Do Something&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;OnClick&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button1_Click&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;And, you would manipulate the Map during the Buttons OnClick event like this:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button1_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
{
    &lt;span class="rem"&gt;// Zoom In&lt;/span&gt;
    Map1.Zoom++;

    &lt;span class="rem"&gt;// Change to Hybrid Map Style&lt;/span&gt;
    Map1.MapStyle = MapStyle.Hybrid;

    &lt;span class="rem"&gt;// Add Pushpin&lt;/span&gt;
    Map1.AddShape(&lt;span class="kwrd"&gt;new&lt;/span&gt; Shape(Map1.LatLong));
}&lt;/pre&gt;

&lt;p&gt;If you run the above example, you’ll notice that every time the user clicks the ASP.NET Button control the entire Page reloads and the Map is completely redrawn. Next we will link up the Buttons OnClick event to an ASP.NET UpdatePanel to cause it to manipulate the Map using an Asynchronous Postback without reloading the entire Page.&lt;/p&gt;

&lt;h2&gt;Manipulate the Map without reloading the Page&lt;/h2&gt;

&lt;p&gt;Now that we’re manipulating the Map during the OnClick event of an ASP.NET Button Control, it sure would be nice if we could manipulate the Map without reloading the entire Page and loosing all the current state of the Map (position, zoom level, currently plotted Shapes). This is where the ASP.NET UpdatePanel control comes in.&lt;/p&gt;

&lt;p&gt;All we need to do is add an ASP.NET UpdatePanel control to the Page and add an AsyncPostBackTrigger for the Button Control’s Click Event. Also, since we aren’t using the UpdatePanel to update any visible html content, we will just leave it’s ContentTemplate “blank.”&lt;/p&gt;

&lt;p&gt;To do this, just add the following code to the .aspx page that contains the Button control we created above:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;up1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:AsyncPostBackTrigger&lt;/span&gt;
            &lt;span class="attr"&gt;ControlID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt;
            &lt;span class="attr"&gt;EventName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Click&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Now the Buttons Click event will be raised using an Asynchronous Postback, and any Map manipulations we perform within the Event Handler will be passed down to the Client and implemented on Map already being displayed to the user.&lt;/p&gt;

&lt;h2&gt;Why leave the UpdatePanel’s ContentTemplate “blank”?&lt;/h2&gt;

&lt;p&gt;The reason we leave the ASP.NET UpdatePanel’s ContentTemplate “blank” in the above example is because we don’t want it to update any of the Page’s content.&lt;/p&gt;

&lt;p&gt;But we do want it to update the Map on the Page, don’t we? Yes, that is correct. Except this UpdatePanel with the “blank” ContentTemplate isn’t actually the one that’s updating the Map. The Map updates are actually performed by a “hidden” UpdatePanel that is part of the Map control itself. This is described below.&lt;/p&gt;

&lt;h2&gt;How does the UpdatePanel do this?&lt;/h2&gt;

&lt;p&gt;The Web.Maps.VE v2.0 Map control actually contains a “hidden” ASP.NET UpdatePanel control that it adds to the Page behind the scenes. This “hidden” UpdatePanel is caused to reload when ever any other UpdatePanel on the Page generates an Asynchronous Postback.&lt;/p&gt;

&lt;p&gt;The “hidden” UpdatePanel also passes the current Map state (zoom level, center location, map style, map mode, currently plotted shapes, etc.) back up to the server every time other UpdatePanels on the Page generate Asynchronous Postbacks.&lt;/p&gt;

&lt;p&gt;This automatic communication via the “hidden” UpdatePanel is what allows the Map control to automatically transfer it’s state back and forth between the client and server as needed, and is what enables this rich ajax functionality to work.&lt;/p&gt;

&lt;h2&gt;Can I place Content/Controls within the UpdatePanel’s ContentTemplate&lt;/h2&gt;

&lt;p&gt;Yes, of course. If you have any content (other than the Map) that you want to update on Asynchronous Postbacks you can definitely place that content within the UpdatePanel’s ContentTemplate.&lt;/p&gt;

&lt;p&gt;For example you could display the Maps current Center Location on the Page by placing an ASP.NET Labal control within the ContentTemplate and setting it’s Text within the Button’s Click Event Handler.&lt;/p&gt;

&lt;p&gt;To do this, just add the following line to the Button’s Click Event Handler:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;lblCenterLocation.Text = Map1.LatLong.ToString();&lt;/pre&gt;

&lt;p&gt;And, add an ASP.NET Label control to the UpdatePanel’s ContentTemplate:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;up1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;
            &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;lblCenterLocation&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:AsyncPostBackTrigger&lt;/span&gt;
            &lt;span class="attr"&gt;ControlID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt;
            &lt;span class="attr"&gt;EventName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Click&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2&gt;Some Tips on using the UpdatePanel Control&lt;/h2&gt;

&lt;p&gt;Here are a few things to note/remember when using ASP.NET UpdatePanel controls on the Page along with the Web.Maps.VE v2.0 Map control:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Do not place the Map control within an UpdatePanel!&lt;/strong&gt; It will cause the control to not function properly, and is not supported.&lt;/li&gt;

  &lt;li&gt;If you have multiple Button, LinkButton or other server controls that will be raising Asynchronous Postbacks to Update the Map, then you’ll want to use only a single UpdatePanel with a “blank” ContentTemplate and add all the necessary AsyncPostBackTriggers to it.&lt;/li&gt;

  &lt;li&gt;If you aren’t updating the Button, LinkButton or other Server Control that is firing the Asynchronous Postback, then don’t place it within the UpdatePanel’s ContentTemplate. This would just generate extra overhead and could affect the overall performance of the Page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to read some more Tips and Tricks on using the UpdatePanel control in general, then I recommend you read the &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163413.aspx" target="_blank"&gt;“UpdatePanel Tips and Tricks” article by Jeff Prosise&lt;/a&gt; on MSDN. You may also be interested in the “&lt;a href="http://pietschsoft.com/post.aspx?id=0b0d94ba-c184-48ce-b29a-38da320dbc7e" target="_blank"&gt;Some ASP.NET AJAX Tips and Tricks&lt;/a&gt;” article I wrote a while back.&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;As you can see it’s fairly simple and straight forward to update the Map during an Asynchronous Postback. And, it can be done from any Server Control’s Event that can be wired up to an UpdatePanel using an AsyncPostBackTrigger.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/3i1WY4jZrhg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/3i1WY4jZrhg/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/WebMapsVE-v20-e28093-Using-UpdatePanel-to-Perform-Asynchronous-Operations.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=1c7671aa-838d-4986-a0ba-019b7ad8685d</guid>
      <pubDate>Wed, 08 Apr 2009 22:42:26 -0500</pubDate>
      <category>Web.Maps.VE v2.0</category>
      <category>Tutorials</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=1c7671aa-838d-4986-a0ba-019b7ad8685d</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=1c7671aa-838d-4986-a0ba-019b7ad8685d</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/WebMapsVE-v20-e28093-Using-UpdatePanel-to-Perform-Asynchronous-Operations.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=1c7671aa-838d-4986-a0ba-019b7ad8685d</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=1c7671aa-838d-4986-a0ba-019b7ad8685d</feedburner:origLink></item>
    <item>
      <title>Web.Maps.VE v2.0 - Enable Shape Dragging via the VEToolkit DragShapeExtender</title>
      <description>&lt;p&gt;One of the nice User Interface features to implement when using a Map to insert/edit location data within an application is the ability to allow the user to reposition a pushpin or shape by dragging it with the mouse. Neither Web.Maps.VE or Virtual Earth directly implement this functionality. However, the Virtual Earth Toolkit (VEToolkit) contains a DragShapeExtender component that allows for this functionality to easily be implemented using the Web.Maps.VE server control. This tutorial will cover the basics of hooking up the VEToolkit DragShapeExtender to the Web.Maps.VE Map to allow your users reposition shapes by dragging them with the mouse.&lt;/p&gt;  &lt;h2&gt;Prerequisites&lt;/h2&gt;  &lt;p&gt;This tutorial assumes that you already have a basic understanding of how to place a Map on a Page using Web.Maps.VE within an ASP.NET Website or Web Application Project. If you need an overview of how to place a Map on a page, then I recommend you go check out the &lt;a href="http://blog.simplovation.com/blog/post.aspx?id=87d93337-e343-42f8-8b56-67f994a30814"&gt;Getting Started Tutorial&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;It is also assumed that you have a basic understanding of JavaScript programming, but don’t worry only a tiny bit is needed for this tutorial.&lt;/p&gt;  &lt;p&gt;Before you continue, you’ll want to go download the latest JavaScript release of the Virtual Earth Toolkit (VEToolkit) open source project.&lt;/p&gt;  &lt;p&gt;Download VEToolkit Here: &lt;a href="http://vetoolkit.codeplex.com/"&gt;http://vetoolkit.codeplex.com/&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Allow User to Create/Delete Shapes using the Mouse&lt;/h2&gt;  &lt;p&gt;First, you’ll need to create an empty ASP.NET Website or Web Application Project and add a Map to it’s Default.aspx page.&lt;/p&gt;  &lt;p&gt;Before we hook up the VEToolkit DragShapeExtender to our Map to allow “draggable” shapes, we need to plot some shape on the Map. To do this we’ll use the following code within the Maps OnClick event handler to Plot New Shapes using the Left Mouse Button and Delete Existing Shapes using the Right Mouse Button.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Map1_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, AsyncMapEventArgs e)
{
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.leftMouseButton &amp;amp;&amp;amp; e.Shape == &lt;span class="kwrd"&gt;null&lt;/span&gt;)
    {
        &lt;span class="rem"&gt;// If the user clicked on the Map using the Left Mouse Button and&lt;/span&gt;
        &lt;span class="rem"&gt;// they didn't click on an existing Shape, then Add a New Pushpin&lt;/span&gt;
        &lt;span class="rem"&gt;// Shape to the Map.&lt;/span&gt;
        Map1.AddShape(&lt;span class="kwrd"&gt;new&lt;/span&gt; Shape(e.latlong));
    }
    &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.rightMouseButton &amp;amp;&amp;amp; e.Shape != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
    {
        &lt;span class="rem"&gt;// If the user clicked on an existing Shape using thr Right Mouse&lt;/span&gt;
        &lt;span class="rem"&gt;// Button, then Delete that Shape from the Map.&lt;/span&gt;
        Map1.DeleteShape(e.Shape);
    }
}&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Attach the above method to the Map.Click event using the following:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;OnClick&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1_Click&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;If you need an overview of handling the Map.Click (“OnClick”) event, please read the “&lt;a href="http://blog.simplovation.com/blog/post.aspx?id=190057e0-e105-4943-878f-2b0fcfbe4c77"&gt;Basics of the Click Event&lt;/a&gt;” Tutorial.&lt;/p&gt;

&lt;p&gt;Now that we have a mechanism that allows the user to dynamically add/remove pushpin shapes from the Map, we can go ahead and hook up the VEToolkit DragShapeExtender component.&lt;/p&gt;

&lt;h2&gt;Enable “Draggable” Shapes&lt;/h2&gt;

&lt;p&gt;To enable “draggable” Shapes, we need to incorporate the VEToolkit DragShapeExtender component into our example.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Copy the following two JavaScript files from the VEToolkit into your project.
    &lt;br /&gt;

    &lt;br /&gt;&lt;em&gt;VEToolkit.Core.js
      &lt;br /&gt;VEToolkit.DragShapeExtender.js&lt;/em&gt;

    &lt;br /&gt;

    &lt;br /&gt;The VEToolkit.Core.js file contains the “core” functionality provided by the VEToolkit. I’m not going to go into what it all contains here, but it is required by the VEToolkit.DragShapeExtender.js; which contains the DragShapeExtender component.

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Add &amp;lt;script&amp;gt; references to the Page Header to include the above two scripts:&lt;/li&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;scripts/VEToolkit.Core.js&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &amp;lt;script src=&lt;span class="str"&gt;&amp;quot;scripts/VEToolkit.DragShapeExtender.js&amp;quot;&lt;/span&gt;&amp;gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;li&gt;Declare a JavaScript method to be called once the Map has finished loading in the Page.&lt;/li&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;function&lt;/span&gt; Map1_ClientMapLoaded(map) {
        &lt;span class="rem"&gt;// The &amp;quot;map&amp;quot; variable will contain a reference to the client-side&lt;/span&gt;
        &lt;span class="rem"&gt;// Web.Maps.VE object instance.&lt;/span&gt;
    }
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;li&gt;Set the above JavaScript Methods Name to the Map.OnClientMapLoaded property so it gets fired appropriately.&lt;/li&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;OnClientMapLoaded&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1_ClientMapLoaded&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;li&gt;Now we need to create an instance of the VEToolkit.DragShapeExtender component within our OnClientMapLoaded JavaScript Event Handler, and hook it up to the Map to allow for Shapes to be “draggable.” To do this, copy the below &amp;lt;script&amp;gt; block into the page replacing the one we just created to add the Map1_ClientMapLoaded method.&lt;/li&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;// Global variable to hold a reference to the VEToolkit.DragShapeExtender.&lt;/span&gt;
    &lt;span class="kwrd"&gt;var&lt;/span&gt; dragShapeExtender = &lt;span class="kwrd"&gt;null&lt;/span&gt;;

    &lt;span class="rem"&gt;// This Method is called once the Web.Maps.VE Map Control has finished&lt;/span&gt;
    &lt;span class="rem"&gt;// loading on the Page.&lt;/span&gt;
    &lt;span class="kwrd"&gt;function&lt;/span&gt; Map1_ClientMapLoaded(map) {
        &lt;span class="rem"&gt;// The &amp;quot;map&amp;quot; variable will contain a reference to the client-side&lt;/span&gt;
        &lt;span class="rem"&gt;// Web.Maps.VE object instance.&lt;/span&gt;

        &lt;span class="rem"&gt;// Obtain a reference to the VEMap instance within the Web.Maps.VE&lt;/span&gt;
        &lt;span class="rem"&gt;// Map Control.&lt;/span&gt;
        &lt;span class="kwrd"&gt;var&lt;/span&gt; vemap = map.get_Map();
    
        &lt;span class="rem"&gt;// Create a new instance of the VEToolkit.DragShapeExtender and&lt;/span&gt;
        &lt;span class="rem"&gt;// attach it to the VEMap instance.&lt;/span&gt;
        dragShapeExtender = &lt;span class="kwrd"&gt;new&lt;/span&gt; VEToolkit.DragShapeExtender(vemap);
        
        &lt;span class="rem"&gt;// Set the DragShapeExtender to only allow Shapes to be dragged&lt;/span&gt;
        &lt;span class="rem"&gt;// using the Left Mouse Button&lt;/span&gt;
        dragShapeExtender.DragLeftMouseButton = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
        dragShapeExtender.DragRightMouseButton = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
    }
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/ol&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Event though this functionality isn’t built directly into Web.Maps.VE (or the MS Virtual Earth API) it’s extremely easy to implement with only a few lines of code. Now you have a nice example of how to allow users of your application to dynamically plot and reposition location data using a Map and their Mouse.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/AS7wuAD_6kA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/AS7wuAD_6kA/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/WebMapsVE-v20-Enable-Shape-Dragging-via-the-VEToolkit-DragShapeExtender.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=922ae652-bd06-44d0-8746-1e421f93a151</guid>
      <pubDate>Wed, 08 Apr 2009 00:09:25 -0500</pubDate>
      <category>Web.Maps.VE v2.0</category>
      <category>Tutorials</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=922ae652-bd06-44d0-8746-1e421f93a151</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=922ae652-bd06-44d0-8746-1e421f93a151</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/WebMapsVE-v20-Enable-Shape-Dragging-via-the-VEToolkit-DragShapeExtender.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=922ae652-bd06-44d0-8746-1e421f93a151</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=922ae652-bd06-44d0-8746-1e421f93a151</feedburner:origLink></item>
    <item>
      <title>Chris Pietschmann Awarded 2009 Microsoft MVP!</title>
      <description>&lt;p&gt;
&lt;img src="/image.axd?picture=2009%2f3%2fMVP_Logo_Horizontal.png" alt="" width="185" height="75" align="right" /&gt;April 1st, 2009, Chris Pietschmann was awarded the 2009 Microsoft MVP (Most Valuable Professional) Award in the Windows Live Platform category for his contributions to the Microsoft Development Community over the past year.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://mvp.support.microsoft.com/profile/Pietschmann" target="_blank"&gt;View Chris Pietschmann&amp;#39;s MVP Profile on Microsoft.com&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Microsoft is pleased to recognize and award its Most Valuable
Professionals (MVPs). We present the MVP Award to thank individuals for
their exceptional contributions to technical communities worldwide.
When a community participant sees an MVP in a technical community,
whether in a newsgroup, as a user group host, a conference speaker, or
a respondent in forums, that community participant can be confident
that the information shared by the MVP will be of the highest caliber
and will help every user make the most of the technology.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://mvp.support.microsoft.com/gp/mvpexecsum" target="_blank" title="Microsoft MVP Program Overview"&gt;Overview of the Microsoft MVP Program&lt;/a&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/FcS4Kd0UKJo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/FcS4Kd0UKJo/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/Chris-Pietschmann-Awarded-2009-Microsoft-MVP.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=f48b05b6-d87b-4d1e-a912-518ed844a2a0</guid>
      <pubDate>Tue, 07 Apr 2009 21:02:00 -0500</pubDate>
      <category>Awards</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=f48b05b6-d87b-4d1e-a912-518ed844a2a0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=f48b05b6-d87b-4d1e-a912-518ed844a2a0</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/Chris-Pietschmann-Awarded-2009-Microsoft-MVP.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=f48b05b6-d87b-4d1e-a912-518ed844a2a0</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=f48b05b6-d87b-4d1e-a912-518ed844a2a0</feedburner:origLink></item>
    <item>
      <title>Web.Maps.VE v2.0 – Using the MiniMapExtender</title>
      <description>&lt;p&gt;The &lt;a href="http://simplovation.com/page/webmapsve.aspx" target="_blank"&gt;Web.Maps.VE v2.0 ASP.NET AJAX Virtual Earth Mapping Control&lt;/a&gt; comes with a couple of extender controls. These are additional controls contained within the controls Dll that basically add/extend the main Map control with additional functionality that’s not built-in. This tutorial is going to give you an overview of how to use the MiniMapExtender control to easily add a Mini Map to your Maps.&lt;/p&gt;  &lt;h2&gt;Prerequisites&lt;/h2&gt;  &lt;p&gt;This tutorial assumes that you already have a basic understanding of how to place a Map on a Page within your ASP.NET Website or Web Application Project.&lt;/p&gt;  &lt;p&gt;If you need to get an overview of how to place a Map on the Page, then I recommend you go check out the “&lt;a href="http://blog.simplovation.com/blog/post.aspx?id=87d93337-e343-42f8-8b56-67f994a30814" target="_blank"&gt;Getting Started with Web.Maps.VE v2.0 – Display a Virtual Earth Map on a Page&lt;/a&gt;” tutorial.&lt;/p&gt;  &lt;h2&gt;What is the MiniMapExtender?&lt;/h2&gt;  &lt;p&gt;The MiniMapExtender allows a Mini Map to easily be added to the Virtual Earth Map, and allows the Mini Map to easily be aligned to any side and/or corner of the Map automatically. The control is contained within the “Simplovation.Web.Maps.VE.Extenders” namespace.&lt;/p&gt;  &lt;p&gt;Any time the Map is resized, or the user changes the size of the Mini Map; the MiniMapExtender will automatically adjust the positioning of the Mini Map to show according to its’ specified settings.&lt;/p&gt;  &lt;p&gt;Below is a screenshot of the MiniMapExtender in action. The Mini Map is being automatically aligned to the Top Right corner of the Map.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.simplovation.com/blog/image.axd?picture=MiniMapExtender.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="MiniMapExtender" border="0" alt="MiniMapExtender" src="http://blog.simplovation.com/blog/image.axd?picture=MiniMapExtender_thumb.png" width="244" height="214" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h2&gt;Attach a MiniMapExtender to a Map&lt;/h2&gt;  &lt;ol&gt;   &lt;li&gt;Open up the .aspx page with the Map on it, and select “Source” view.&lt;/li&gt;    &lt;li&gt;Add the following Register directive to the top of the Page. This will include the Simplovation.Web.Maps.VE.Extenders namespace in the page, allowing you to place a MiniMapExtender control on the Page.&lt;/li&gt;    &lt;pre class="csharpcode"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Register Assembly=&amp;quot;Simplovation.Web.Maps.VE&amp;quot;
    Namespace=&amp;quot;Simplovation.Web.Maps.VE.Extenders&amp;quot;
    TagPrefix=&amp;quot;MapExtenders&amp;quot; %&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;li&gt;Add a MiniMapExtender to the Page and set its’ TargetControlID property equal to the ID of the Map. This tells the MiniMapExtender to attach itself to the specified Map control&lt;/li&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;800&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;600&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MapExtenders:MiniMapExtender&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MiniMapExtender1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;TargetControlID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/ol&gt;

&lt;p&gt;It is important when declaring a MiniMapControl on a Page that you place its’ declaration AFTER the Map controls declaration. This is required since the Map control needs to be added to the Page’s control hierarchy before the MiniMapExtender is instantiated and tries to attach itself to the Map control. If you don’t do this you may get an exception, or the Mini Map simply will not be displayed.&lt;/p&gt;

&lt;p&gt;By default, the MiniMapExtender will display the Mini Map in the Top Right Corner of the Map, and it’s size will be set to Small.&lt;/p&gt;

&lt;h2&gt;Set the Horizontal Alignment of the Mini Map&lt;/h2&gt;

&lt;p&gt;The MiniMapExtender.HorizontalSide property allows you to specify which horizontal side to automatically align the Mini Map. By default this property is set to align the Mini Map to the Right Side of the Map.&lt;/p&gt;

&lt;p&gt;The HorizontalSide property accepts one of the following MiniMapHorizontalAlignment enumerations:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Left&lt;/strong&gt; – Aligns the Mini Map to the Left side of the Map.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Center – &lt;/strong&gt;Aligns the Mini Map to the Center of the Map.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Right&lt;/strong&gt; – Aligns the Mini Map to the Right side of the Map.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s an example of setting the Mini Map to be automatically aligned to the Left Side of the Map:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MapExtenders:MiniMapExtender&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MiniMapExtender1&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;TargetControlID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;HorizontalSide&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2&gt;Set the Vertical Alignment of the Mini Map&lt;/h2&gt;

&lt;p&gt;The MiniMapExtender.VerticalSide property allows you to specify which vertical side to automatically align the Mini Map. By default this property is set to align the Mini Map to the Top of the Map.&lt;/p&gt;

&lt;p&gt;The VerticalSide property accepts one of the following MiniMapVerticalAlignment enumerations:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Top&lt;/strong&gt; – Aligns the Mini Map to the Top of the Map.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Middle – &lt;/strong&gt;Aligns the Mini Map to the Middle of the Map.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Bottom&lt;/strong&gt; – Aligns the Mini Map to the Bottom of the Map.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s an example of setting the Mini Map to be automatically aligned to the Bottom of the Map:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MapExtenders:MiniMapExtender&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MiniMapExtender1&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;TargetControlID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;VerticalSide&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Bottom&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2&gt;Set the Vertical and Horizontal Offset&lt;/h2&gt;

&lt;p&gt;The MiniMapExtender has a couple of Offset properties that allow you to specify the number of pixels to offset the automatic alignment of the Mini Map. This allows you to add “padding” to space the Mini Map away from the edge of the Map, vertically or horizontally.&lt;/p&gt;

&lt;p&gt;The Offset properties are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;HorizontalOffset&lt;/strong&gt; – An Integer value that specifies the distance (in pixels) to space the Mini Map from the HorizontalSide edge of the Map. The default value is 0 pixels.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;VerticalOffset&lt;/strong&gt; – An Integer value that specifies the distance (in pixels) to space the Mini Map from the VerticalSide edge of the Map. The default value is 0 pixels.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s an example that spaces the Mini Map both vertically and horizontally from the edge of the Map by 10 pixels:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MapExtenders:MiniMapExtender&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MiniMapExtender1&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;TargetControlID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;VerticalOffset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;10&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;HorizontalOffset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;10&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://blog.simplovation.com/blog/image.axd?picture=MiniMapExtender_Offset10Pixels.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="MiniMapExtender_Offset10Pixels" border="0" alt="MiniMapExtender_Offset10Pixels" src="http://blog.simplovation.com/blog/image.axd?picture=MiniMapExtender_Offset10Pixels_thumb.png" width="244" height="227" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;Manipulate the MiniMapExtender using JavaScript&lt;/h2&gt;

&lt;p&gt;The MiniMapExtender also includes a small JavaScript API that allows you to manipulate the display of the Mini Map from within client-side code after the Page has loaded.&lt;/p&gt;

&lt;p&gt;The JavaScript API provides the following methods:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;ShowMiniMap – &lt;/strong&gt;This method is used to make the Mini Map visible to the user. If the Mini Map is already visible then it does nothing.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;HideMiniMap&lt;/strong&gt; – This method is used to Hide the Mini Map from view to the user. If the Mini Map is already hidden then it does nothing.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;SetMiniMapSize&lt;/strong&gt; – This method is used to Set the Size of the Mini Map. You pass in the size via passing in a VEMiniMapSize enumeration value.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;SetHorizontalSide&lt;/strong&gt; – This method is used to Set the Horizontal Side to automatically align the Mini Map. You pass in the horizontal side via passing in a Simplovation.Web.Maps.VE.Extenders.MiniMapHorizontalAlignment enumeration value.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;SetVerticalSide&lt;/strong&gt; – This method is used to Set the Vertical Side to automatically align the Mini Map. You pass in the vertical side via passing in a Simplovation.Web.Maps.VE.Extenders.MiniMapVerticalAlignment enumeration value.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before you can call the above MiniMapExtender JavaScript API methods, you need to obtain a reference to the MiniMapExtender itself. To do this you need to pass the MiniMapExtender.ClientID property from the server-side down to the client, then pass that value to the “$find” JavaScript method.&lt;/p&gt;

&lt;p&gt;Here’s an example of what to place within your ASP.NET Page to get a reference to the MiniMapExtender on the client-side using JavaScript:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;function&lt;/span&gt; getMiniMapExtenderReference() {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; $find(&lt;span class="str"&gt;&amp;quot;&amp;lt;%=MiniMapExtender1.ClientID %&amp;gt;&amp;quot;&lt;/span&gt;);
    }
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Here are some samples of calling the MiniMapExtender JavaScript API methods using the above method that retrieves the MiniMapExtender’s Client-Side JavaScript Object:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;function&lt;/span&gt; SetMiniMapPropertiesDemo() {
        &lt;span class="rem"&gt;// Get a Reference to the MiniMapExtender's JavaScript Object&lt;/span&gt;
        &lt;span class="kwrd"&gt;var&lt;/span&gt; miniMapExtender = getMiniMapExtenderReference();

        &lt;span class="rem"&gt;// Show the Mini Map&lt;/span&gt;
        miniMapExtender.ShowMiniMap();

        &lt;span class="rem"&gt;// Hide the Mini Map&lt;/span&gt;
        miniMapExtender.HideMiniMap();

        &lt;span class="rem"&gt;// Set the Mini Map Size to Small&lt;/span&gt;
        miniMapExtender.SetMiniMapSize(VEMiniMapSize.Small);

        &lt;span class="rem"&gt;// Set the Mini Map Size to Large&lt;/span&gt;
        miniMapExtender.SetMiniMapSize(VEMiniMapSize.Large);

        &lt;span class="rem"&gt;// Set the Horizontal Alignment to Left&lt;/span&gt;
        miniMapExtender.SetHorizontalSide(
            Simplovation.Web.Maps.VE.Extenders.MiniMapHorizontalAlignment.Left
        );

        &lt;span class="rem"&gt;// Set the Horizontal Alignment to Center&lt;/span&gt;
        miniMapExtender.SetHorizontalSide(
            Simplovation.Web.Maps.VE.Extenders.MiniMapHorizontalAlignment.Center
        );

        &lt;span class="rem"&gt;// Set the Horizontal Alignment to Right&lt;/span&gt;
        miniMapExtender.SetHorizontalSide(
            Simplovation.Web.Maps.VE.Extenders.MiniMapHorizontalAlignment.Right
        );

        &lt;span class="rem"&gt;// Set the Vertical Alignment to Top&lt;/span&gt;
        miniMapExtender.SetHorizontalSide(
            Simplovation.Web.Maps.VE.Extenders.MiniMapVerticalAlignment.Top
        );

        &lt;span class="rem"&gt;// Set the Vertical Alignment to Middle&lt;/span&gt;
        miniMapExtender.SetHorizontalSide(
            Simplovation.Web.Maps.VE.Extenders.MiniMapVerticalAlignment.Middle
        );

        &lt;span class="rem"&gt;// Set the Vertical Alignment to Bottom&lt;/span&gt;
        miniMapExtender.SetHorizontalSide(
            Simplovation.Web.Maps.VE.Extenders.MiniMapVerticalAlignment.Bottom
        );
    }
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;There are also a couple of “undocumented” JavaScript methods (as of v2.00.03) contained within the MiniMapExtender’s JavaScript API. It is safe to call these methods, as they will not change in the future.&lt;/p&gt;

&lt;p&gt;The two “undocumented” JavaScript methods are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;set_HorizontalOffset&lt;/strong&gt; – Sets the distance (in pixels) to space the Mini Map from the HorizontalSide edge of the Map.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;set_VerticalOffset&lt;/strong&gt; – Sets the distance (in pixels) to space the Mini Map from the VerticalSide edge of the Map.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s some examples of calling these methods using the previously mentioned method of obtaining a reference to the MiniMapExtender’s JavaScript Object:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;function&lt;/span&gt; CallUndocumentedMethods() {
        &lt;span class="kwrd"&gt;var&lt;/span&gt; miniMapExtender = getMiniMapExtenderReference();

        &lt;span class="rem"&gt;// Set the Horizontal Offset to 10px&lt;/span&gt;
        miniMapExtender.set_HorizontalOffset(10);
            
        &lt;span class="rem"&gt;// Set the Vertical Offset to 10px&lt;/span&gt;
        miniMapExtender.set_VerticalOffset(10);
    }
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Future Feature: The v2.00.04 update and later will contain the addition of official “SetHorizontalOffset” and “SetVerticalOffset” MiniMapExtender JavaScript API methods. Until this future update comes out, you’ll need to use the above mentioned “undocumented” methods to use JavaScript code to modify the MiniMapExtender’s Offset properties.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you are looking for an additional reference on using the MiniMapExtender, please see the MiniMapExtender example within the Web.Maps.VE v2.0 Sample Website that is part of the Trial Edition Installer.&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;The MiniMapExtender control allows you to very easily Show and position a Mini Map on your Maps, and keep it automatically aligned to that position.&lt;/p&gt;

&lt;p&gt;The other extender controls will be covered in additional tutorials.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/v0Xb94VIG6A" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/v0Xb94VIG6A/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/WebMapsVE-v20-e28093-Using-the-MiniMapExtender.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=6a46a785-4def-4016-b3c4-0097b24595c6</guid>
      <pubDate>Fri, 27 Mar 2009 20:14:08 -0500</pubDate>
      <category>Web.Maps.VE v2.0</category>
      <category>Tutorials</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=6a46a785-4def-4016-b3c4-0097b24595c6</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=6a46a785-4def-4016-b3c4-0097b24595c6</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/WebMapsVE-v20-e28093-Using-the-MiniMapExtender.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=6a46a785-4def-4016-b3c4-0097b24595c6</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=6a46a785-4def-4016-b3c4-0097b24595c6</feedburner:origLink></item>
    <item>
      <title>Web.Maps.VE v2.0 – Basics of the Click Event</title>
      <description>&lt;p&gt;The &lt;a href="http://simplovation.com/page/webmapsve.aspx" target="_blank"&gt;Web.Maps.VE v2.0 ASP.NET AJAX Virtual Earth Mapping control&lt;/a&gt; Raises a few of the Client-Side Virtual Earth Events up to Server-Side ASP.NET Code. One of these events is the Map.Click Event. The Map.Click Event gets raised each time the user clicks on the Map using the Mouse. This tutorial is going to give you an overview of how to handle the Map.Click event, and use it to add/remove pushpins, re-center the map and change the map zoom level.&lt;/p&gt;  &lt;h2&gt;Prerequisites&lt;/h2&gt;  &lt;p&gt;This tutorial assumes that you already have a basic understanding of how to place a Map on a Page within your ASP.NET Website or Web Application Project.&lt;/p&gt;  &lt;p&gt;If you need to get an overview of how to place a Map on the Page, then I recommend you go check out the “&lt;a href="http://blog.simplovation.com/blog/post.aspx?id=87d93337-e343-42f8-8b56-67f994a30814" target="_blank"&gt;Getting Started with Web.Maps.VE v2.0 – Display a Virtual Earth Map on a Page&lt;/a&gt;” tutorial.&lt;/p&gt;  &lt;h2&gt;Attaching an Event Handler to the Map.Click Event&lt;/h2&gt;  &lt;p&gt;In order to handle the “OnClick” event, we must first attach an Event Handler to the Map.Click Event. This is done exactly the same as attaching an event handler to any other event in .NET.&lt;/p&gt;  &lt;p&gt;It can be done declaratively within markup like this:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;OnClick&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1_Click&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Or, within code like this:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;Map1.Click += &lt;span class="kwrd"&gt;new&lt;/span&gt; Map.AsyncMapEventHandler(Map1_Click);&lt;/pre&gt;

&lt;p&gt;If you decide to attach the event within code, then it is recommended that you attach it within the Page.OnLoad Event Handler. Also, the Map.Click event handler must be attached on the initial page load, and can not be attached during an Asynchronous Postback.&lt;/p&gt;

&lt;p&gt;Once we have the event handler attached, we must declare our actual “Map1_Click” event handler method stub that we will place our “OnClick” event handling code within.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Map1_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, AsyncMapEventArgs e)
{
}&lt;/pre&gt;

&lt;p&gt;The Map.Click Event Handler accepts two arguments. The first is of type Object, and is a reference to the Map object that fired the event. The second is of type AsyncMapEventArgs, and contains information about the client-side map event that just fired the event.&lt;/p&gt;

&lt;h2&gt;AsyncMapEventArgs Properties&lt;/h2&gt;

&lt;p&gt;The AsyncMapEventArgs objects properties are mostly a mirror of the client-side &lt;a href="http://msdn.microsoft.com/en-us/library/bb429584.aspx" target="_blank"&gt;vemap event object properties&lt;/a&gt;with a couple exceptions/additions.&lt;/p&gt;

&lt;p&gt;These are the AsyncMapEventArgs properties that are most relavent when handling the Map.Click event:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;altkey – &lt;/strong&gt;A boolean value representing whether the ALT key was held down when the event was raised. Note: This is not supported in 3D mode. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;ctrlKey – &lt;/strong&gt;A boolean value representing whether the CTRL key was held down when the event was raised. Note: This is not supported in 3D mode. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;latlong – &lt;/strong&gt;A LatLong object that contains the Lat/Long Coordinates of the Clicked Location. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;leftMouseButton – &lt;/strong&gt;A boolean value representing whether the Left Mouse Button was Clicked. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;MapView – &lt;/strong&gt;A LatLongRectangle object that represents the current viewable area of the Map. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;middleMouseButton&lt;/strong&gt; – A boolean value representing whether the Middle Mouse Button was Clicked. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;rightMouseButton&lt;/strong&gt; – A boolean value representing whether the Right Mouse Button was Clicked. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Shape&lt;/strong&gt; – If a Shape was Clicked, then this will contain a reference to that Shape object. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;shiftKey&lt;/strong&gt; – A boolean value representing whether the SHIFT key was held down when the event was raised. Note: This is not supported in 3D mode. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;zoomLevel&lt;/strong&gt; – The current Zoom Level of the Map. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Add a Pushpin Shape at the Clicked Locations&lt;/h2&gt;

&lt;p&gt;To add a Shape (of Type Pushpin) to the Map during the Click event you just need to follow these steps within your Map.Click Event Handler:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Create a New Shape of Type Pushpin and set it’s Location to the value that’s contained within the AsyncMapEventArgs.latlong property. &lt;/li&gt;

  &lt;li&gt;Cast the “sender” method argument to type Map. &lt;/li&gt;

  &lt;li&gt;Invoke the Map.AddShape method, passing in the Shape that was just created. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is fairly simple to do, and the resulting code is as follows:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Map1_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, AsyncMapEventArgs e)
{
    &lt;span class="rem"&gt;// Create Pushpin at the Clicked Location&lt;/span&gt;
    var pushpinShape = &lt;span class="kwrd"&gt;new&lt;/span&gt; Shape(e.latlong);

    &lt;span class="rem"&gt;// Set the Pushpins Title and Description&lt;/span&gt;
    pushpinShape.Title = &lt;span class="str"&gt;&amp;quot;Clicked Location&amp;quot;&lt;/span&gt;;
    pushpinShape.Description = &lt;span class="str"&gt;&amp;quot;A Description for the Clicked Location&amp;quot;&lt;/span&gt;;

    &lt;span class="rem"&gt;// Cast &amp;quot;sender&amp;quot; as Map&lt;/span&gt;
    var map = (Map)sender;

    &lt;span class="rem"&gt;// Add the Shape to the Map&lt;/span&gt;
    map.AddShape(pushpinShape);
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;h2&gt;Center the Map on the Clicked Pushpin&lt;/h2&gt;

&lt;p&gt;To center the Map on the Clicked Shape (pushpin in this case) all you need to do is to check whether the AsyncMapEventArgs.Shape property is Null. If it’s not null, then the user clicked on an existing Shape. Then set the Maps Center Lat/Long equal to the center of the Pushpin Shape.&lt;/p&gt;

&lt;p&gt;To do this, follow these steps:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Check if the AsyncMapEventArgs.Shape property is Null &lt;/li&gt;

  &lt;li&gt;If AsyncMapEventArgs.Shape is Not Null, then Center the Map on the Shape by setting the Map.LatLong property equal to the AsyncMapEventArgs.Shape.LatLong property &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here’s the code from above modified to center on the clicked pushpin, and to add a new pushpin when the user clicks anywhere else on the Map:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Map1_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, AsyncMapEventArgs e)
{
    &lt;span class="rem"&gt;// Cast &amp;quot;sender&amp;quot; as Map&lt;/span&gt;
    var map = (Map)sender;

    &lt;span class="rem"&gt;// Check if a Shape was Clicked&lt;/span&gt;
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Shape != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
    {
        &lt;span class="rem"&gt;// Shape was clicked, so center the Map on it&lt;/span&gt;

        &lt;span class="rem"&gt;// Set the Maps Center Location equal to the Pushpins Location&lt;/span&gt;
        map.LatLong = e.Shape.LatLong;
    }
    &lt;span class="kwrd"&gt;else&lt;/span&gt;
    {
        &lt;span class="rem"&gt;// Shape was not clicked, so add a new Shape at that Location&lt;/span&gt;

        &lt;span class="rem"&gt;// Create Pushpin at the Clicked Location&lt;/span&gt;
        var pushpinShape = &lt;span class="kwrd"&gt;new&lt;/span&gt; Shape(e.latlong);

        &lt;span class="rem"&gt;// Set the Pushpins Title and Description&lt;/span&gt;
        pushpinShape.Title = &lt;span class="str"&gt;&amp;quot;Clicked Location&amp;quot;&lt;/span&gt;;
        pushpinShape.Description = &lt;span class="str"&gt;&amp;quot;A Description for the Clicked Location&amp;quot;&lt;/span&gt;;

        &lt;span class="rem"&gt;// Add the Shape to the Map&lt;/span&gt;
        map.AddShape(pushpinShape);
    }
}&lt;/pre&gt;

&lt;h2&gt;Zoom In on the Clicked Shape when the Shift Key is Held Down&lt;/h2&gt;

&lt;p&gt;To Zoom In the Map one zoom level at the same time you Center the Map on the Clicked Pushpin, all you need to do is increment the Map.Zoom property by 1 within the same Map.Click Event Handler.&lt;/p&gt;

&lt;p&gt;To do this just add this line of code:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;map.Zoom = map.Zoom + 1;&lt;/pre&gt;

&lt;h2&gt;Remove the Clicked Shape on Right Mouse Click&lt;/h2&gt;

&lt;p&gt;To Remove the Clicked Pushpin when the user clicks on it using the Right Mouse Button, all you need to do is check if the AsyncMapEventArgs.rightMouseButton property is True and the AsyncMapEventArgs.Shape property is not null. Then if both those requirements are met, then just pass in the AsyncMapEventArgs.Shape properties value to the Map.DeleteShape method. The Map.DeleteShape method will remove/delete the passed in Shape from the Map.&lt;/p&gt;

&lt;p&gt;Here’s the basic code that does this:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (e.rightMouseButton &amp;amp;&amp;amp; e.Shape != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
{
    map.DeleteShape(e.Shape);
}&lt;/pre&gt;

&lt;h2&gt;Complete Code Written Throughout This Tutorial&lt;/h2&gt;

&lt;p&gt;Here’s the complete code for the resulting Map.Click Event Handler from this entire tutorial:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Map1_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, AsyncMapEventArgs e)
{
    &lt;span class="rem"&gt;// Cast &amp;quot;sender&amp;quot; as Map&lt;/span&gt;
    var map = (Map)sender;

    &lt;span class="rem"&gt;// Check if the Right Mouse Button was Clicked&lt;/span&gt;
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.rightMouseButton &amp;amp;&amp;amp; e.Shape != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
    {
        &lt;span class="rem"&gt;// Delete/Remove the Clicked Shape from the Map&lt;/span&gt;
        map.DeleteShape(e.Shape);
    }
    &lt;span class="kwrd"&gt;else&lt;/span&gt;
    {
        &lt;span class="rem"&gt;// The Right Mouse Button was NOT Clicked&lt;/span&gt;

        &lt;span class="rem"&gt;// Check if a Shape was Clicked&lt;/span&gt;
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Shape != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
        {
            &lt;span class="rem"&gt;// Shape was clicked, so center the Map on it&lt;/span&gt;

            &lt;span class="rem"&gt;// Set the Maps Center Location equal to the Pushpins Location&lt;/span&gt;
            map.LatLong = e.Shape.LatLong;

            &lt;span class="rem"&gt;// Zoom In one zoom level&lt;/span&gt;
            map.Zoom = map.Zoom + 1;
        }
        &lt;span class="kwrd"&gt;else&lt;/span&gt;
        {
            &lt;span class="rem"&gt;// Shape was not clicked, so add a new Shape at that Location&lt;/span&gt;

            &lt;span class="rem"&gt;// Create Pushpin at the Clicked Location&lt;/span&gt;
            var pushpinShape = &lt;span class="kwrd"&gt;new&lt;/span&gt; Shape(e.latlong);

            &lt;span class="rem"&gt;// Set the Pushpins Title and Description&lt;/span&gt;
            pushpinShape.Title = &lt;span class="str"&gt;&amp;quot;Clicked Location&amp;quot;&lt;/span&gt;;
            pushpinShape.Description = &lt;span class="str"&gt;&amp;quot;A Description for the Clicked Location&amp;quot;&lt;/span&gt;;

            &lt;span class="rem"&gt;// Add the Shape to the Map&lt;/span&gt;
            map.AddShape(pushpinShape);
        }
    }
}&lt;/pre&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;As you can see the Web.Maps.VE v2.0 control makes it extremely simple to handle the Client-Side Virtual Earth Map Event from within Server-Side .NET Code; along with making it extremely simple to add shapes and/or manipulate the Map from within Server-Side .NET code.&lt;/p&gt;

&lt;p&gt;Further details on adding Shapes (Pushpins, Polygons and Polylines) will be explained in an additional tutorial.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/pMEhgrKmRk8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/pMEhgrKmRk8/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/WebMapsVE-v20-e28093-Basics-of-the-Click-Event.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=190057e0-e105-4943-878f-2b0fcfbe4c77</guid>
      <pubDate>Fri, 27 Mar 2009 16:11:17 -0500</pubDate>
      <category>Web.Maps.VE v2.0</category>
      <category>Tutorials</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=190057e0-e105-4943-878f-2b0fcfbe4c77</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=190057e0-e105-4943-878f-2b0fcfbe4c77</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/WebMapsVE-v20-e28093-Basics-of-the-Click-Event.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=190057e0-e105-4943-878f-2b0fcfbe4c77</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=190057e0-e105-4943-878f-2b0fcfbe4c77</feedburner:origLink></item>
    <item>
      <title>Getting Started with Web.Maps.VE v2.0 – Display a Virtual Earth Map on a Page</title>
      <description>&lt;p&gt;In this article we will go over the basics of implementing MS Virtual Earth mapping capabilities in ASP.NET 3.5 Web Applications using the &lt;a href="http://simplovation.com/page/webmapsve.aspx"&gt;Web.Maps.VE v2.0 ASP.NET AJAX Virtual Earth Mapping Server Control&lt;/a&gt;. This article also shows code examples in C#, but this are exactly the same if you are using VB.NET.&lt;/p&gt;  &lt;h2&gt;Prerequisites&lt;/h2&gt;  &lt;p&gt;This article assumes you have already downloaded/installed the following onto your development workstation:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft Visual Studio 2008 or Visual Web Developer 2008 Express Edition &lt;/li&gt;    &lt;li&gt;&lt;a href="http://simplovation.com/download/#WEBMAPSVE20TRIAL"&gt;Simplovation Web.Maps.VE v2.0&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Create Website that is ready for Mapping&lt;/h2&gt;  &lt;ol&gt;   &lt;li&gt;Run Visual Studio 2008 and create a New Web Site or ASP.NET Web Application Project.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://blog.simplovation.com/blog/image.axd?picture=WebMapsVE2_GettingStarted_NewWebsite.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebMapsVE2_GettingStarted_NewWebsite" border="0" alt="WebMapsVE2_GettingStarted_NewWebsite" src="http://blog.simplovation.com/blog/image.axd?picture=WebMapsVE2_GettingStarted_NewWebsite_thumb.png" width="244" height="159" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Add a Reference to Simplovation.Web.Maps.VE.dll      &lt;br /&gt;Right-Clicking the “&lt;strong&gt;Website Project&lt;/strong&gt;” and select “&lt;strong&gt;Add Reference…&lt;/strong&gt;”       &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://blog.simplovation.com/blog/image.axd?picture=WebMapsVE2_GettingStarted_AddReferenceMenu.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebMapsVE2_GettingStarted_AddReferenceMenu" border="0" alt="WebMapsVE2_GettingStarted_AddReferenceMenu" src="http://blog.simplovation.com/blog/image.axd?picture=WebMapsVE2_GettingStarted_AddReferenceMenu_thumb.png" width="244" height="213" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Within the “&lt;strong&gt;Add Reference&lt;/strong&gt;” dialog, Select the “&lt;strong&gt;Browse&lt;/strong&gt;” tab and navigate to the folder where Web.Maps.VE is installed, and select “&lt;strong&gt;Simplovation.Web.Maps.VE.dll&lt;/strong&gt;”.       &lt;br /&gt;      &lt;br /&gt;&lt;em&gt;Note: By Default Web.Maps.VE is installed in this folder: “C:\Program Files (x86)\Simplovation LLC\Simplovation Web.Maps.VE v2.00.03”        &lt;br /&gt;        &lt;br /&gt;&lt;a href="http://blog.simplovation.com/blog/image.axd?picture=WebMapsVE2_GettingStarted_AddReferenceDialog.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebMapsVE2_GettingStarted_AddReferenceDialog" border="0" alt="WebMapsVE2_GettingStarted_AddReferenceDialog" src="http://blog.simplovation.com/blog/image.axd?picture=WebMapsVE2_GettingStarted_AddReferenceDialog_thumb.png" width="244" height="150" /&gt;&lt;/a&gt; &lt;/em&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;h2&gt;&lt;em&gt;Display a Map on the Page&lt;/em&gt;&lt;/h2&gt;  &lt;ol&gt;   &lt;li&gt;Open the Default.aspx page, and select “Source” view. &lt;/li&gt;    &lt;li&gt;Add the following Register directive to the top of the Page. This will include the Simplovation.Web.Maps.VE namespace in the page, allowing you to place a Map control on the Page.     &lt;pre class="csharpcode"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Register assembly=&amp;quot;Simplovation.Web.Maps.VE&amp;quot;
    namespace=&amp;quot;Simplovation.Web.Maps.VE&amp;quot;
    tagprefix=&amp;quot;Simplovation&amp;quot; %&amp;gt;&lt;/span&gt;&lt;/pre&gt;
    &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/li&gt;

  &lt;li&gt;Add an ASP.NET ScriptManager control to the top of the Page. This must be added to the Page above the Web.Maps.VE Map object that we’ll add later.
    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ScriptManager1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;Add a Web.Maps.VE Map object to the Page so we can display a MS Virtual Earth Map.
    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Plot a Pushpin on the Map and Center on the Pushpin&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;Open the Code File &lt;em&gt;(Default.aspx.cs)&lt;/em&gt; for the Page. 

    &lt;br /&gt;

    &lt;br /&gt;&lt;em&gt;In this example we’ll just place the Pushpin creation code within the Page Load event handler. You could just as easily use the Click event of an ASP.NET Button; this will be covered in an additional tutorial that will show how to manipulate the Map from server-side code during an Asynchronous Postback using the ASP.NET UpdatePanel control.&lt;/em&gt; 

    &lt;br /&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Create a Simplovation.Web.Maps.VE.LatLong object that will represent the Map Location that the Map will be centered on and the Pushpin will be located.
    &lt;pre class="csharpcode"&gt;var myLatLong = &lt;span class="kwrd"&gt;new&lt;/span&gt; Simplovation.Web.Maps.VE.LatLong(44.4023, –100.6347); &lt;/pre&gt;
    &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/li&gt;

  &lt;li&gt;Create a Simplovation.Web.Maps.VE.Shape object, set it’s Location to the above LatLong object, and give it a Title and Description for its InfoBox.
    &lt;pre class="csharpcode"&gt;var myShape = &lt;span class="kwrd"&gt;new&lt;/span&gt; Simplovation.Web.Maps.VE.Shape(myLatLong); 
myShape.Title = &lt;span class="str"&gt;&amp;quot;The Shape Title&amp;quot;&lt;/span&gt;; 
myShape.Description = &lt;span class="str"&gt;&amp;quot;Some description of the shape.&amp;quot;&lt;/span&gt;; &lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;Add the Pushpin (aka Shape) to the Map by invoking the Map.AddShape method. 
    &lt;pre class="csharpcode"&gt;Map1.AddShape(myShape); &lt;/pre&gt;
    &lt;em&gt;This will add the Shape to the “Default” Shape Layer of the Map. Working with Shape Layers will be covered in more detail an an additional tutorial. 
      &lt;br /&gt;

      &lt;br /&gt;&lt;/em&gt;&lt;/li&gt;

  &lt;li&gt;Center the Map on the specified location by setting the Map.LatLong property to the LatLong object we created with the code above. &lt;/li&gt;

  &lt;pre class="csharpcode"&gt;Map1.LatLong = myLatLong; &lt;/pre&gt;

  &lt;li&gt;Now Run the Website by pressing F5 or selecting “&lt;strong&gt;Start Debugging&lt;/strong&gt;” within the “Debug” Menu. You will see a Map on the Page that is centered on the Pushpin Shape we added using the above code. 

    &lt;br /&gt;

    &lt;br /&gt;&lt;a href="http://blog.simplovation.com/blog/image.axd?picture=WebMapsVE2_GettingStarted_MapWithPushpin.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebMapsVE2_GettingStarted_MapWithPushpin" border="0" alt="WebMapsVE2_GettingStarted_MapWithPushpin" src="http://blog.simplovation.com/blog/image.axd?picture=WebMapsVE2_GettingStarted_MapWithPushpin_thumb.png" width="202" height="244" /&gt;&lt;/a&gt;&amp;#160; &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Setting the Map Center Location (Lat/Long) using ASP.NET Markup&lt;/h2&gt;

&lt;p&gt;In addition to setting the Map’s Center Location using Code, you can also set it’s Center Location just as easily using markup. To do this, you just set the Map objects Latitude and Longitude properties to the location you want to center on.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; 
    &lt;span class="attr"&gt;Latitude&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;44.4023&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Longitude&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;-100.6347&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2&gt;Setting the Map Zoom Level&lt;/h2&gt;

&lt;p&gt;The Maps Zoom Level can also be changed by setting the Map objects Zoom property. The Default Zoom Level of the Map is 4, and it accepts a range of 1 through 19. 
  &lt;br /&gt;

  &lt;br /&gt;To zoom a little closer to the Pushpin we added above, we can set it to a value of 6.&lt;/p&gt;

&lt;p&gt;To do this in code:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;Map1.Zoom = 6;&lt;/pre&gt;

&lt;p&gt;To do this in markup:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Map1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; 
    &lt;span class="attr"&gt;Zoom&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;6&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Simplovation:Map&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;As you can see it’s very simple to add a basic Virtual Earth Map to a Page, set it’s Location (Lat/Long and Zoom) and add a Pushpin to it.&lt;/p&gt;

&lt;p&gt;In additional articles we will cover working with Web.Maps.VE in more depth; including some of the following topics:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Manipulating the Map from Server-Side code leveraging ASP.NET UpdatePanel controls &lt;/li&gt;

  &lt;li&gt;Handle Client-Side Map Events (such as: click, onchangeview, onendpan, onendzoom, etc.) from Server-Side code &lt;/li&gt;

  &lt;li&gt;Working with Shape Layers &lt;/li&gt;

  &lt;li&gt;Loading Driving Directions &lt;/li&gt;

  &lt;li&gt;Extending the Map using JavaScript &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see this is just the beginning in a series of tutorials that will help you dive deep into the workings of Adding/Manipulating/Displaying MS Virtual Earth Maps using the Simplovation Web.Maps.VE ASP.NET AJAX Virtual Earth Server Control&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/Np86NZ9YbBc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/Np86NZ9YbBc/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/Getting-Started-with-WebMapsVE-v20-e28093-Display-a-Virtual-Earth-Map-on-a-Page.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=87d93337-e343-42f8-8b56-67f994a30814</guid>
      <pubDate>Tue, 24 Mar 2009 23:27:26 -0500</pubDate>
      <category>Web.Maps.VE v2.0</category>
      <category>Tutorials</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=87d93337-e343-42f8-8b56-67f994a30814</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=87d93337-e343-42f8-8b56-67f994a30814</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/Getting-Started-with-WebMapsVE-v20-e28093-Display-a-Virtual-Earth-Map-on-a-Page.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=87d93337-e343-42f8-8b56-67f994a30814</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=87d93337-e343-42f8-8b56-67f994a30814</feedburner:origLink></item>
    <item>
      <title>New Simplovation Company Blog is Now Online!</title>
      <description>&lt;p&gt;
We have just launched a &lt;a href="http://blog.simplovation.com"&gt;new Simplovation Company Blo&lt;/a&gt;g, and it will replace the existing blog. The new blog utilizes the awesome &lt;a href="http://dotnetblogengine.net/"&gt;BlogEngine.NET&lt;/a&gt; open source blogging engine software, and will allow us to better provide news, content and other support related articles to our customers.
&lt;/p&gt;
&lt;p&gt;
New Url: &lt;a href="http://blog.simplovation.com"&gt;http://blog.simplovation.com&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Rss Feed: &lt;a href="http://feeds2.feedburner.com/simplovation"&gt;http://feeds2.feedburner.com/simplovation&lt;/a&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/simplovation/~4/5jsQx2PWUUU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/simplovation/~3/5jsQx2PWUUU/post.aspx</link>
      <author>support.nospam@nospam.simplovation.com (crpietschmann)</author>
      <comments>http://blog.simplovation.com/blog/post/New-Simplovation-Company-Blog-is-Now-Online.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.simplovation.com/blog/post.aspx?id=ee33de8e-f1fb-4dc6-a663-a961ea8f6a0a</guid>
      <pubDate>Mon, 23 Mar 2009 21:03:00 -0500</pubDate>
      <category>Support</category>
      <dc:publisher>crpietschmann</dc:publisher>
      <pingback:server>http://blog.simplovation.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://blog.simplovation.com/blog/post.aspx?id=ee33de8e-f1fb-4dc6-a663-a961ea8f6a0a</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.simplovation.com/blog/trackback.axd?id=ee33de8e-f1fb-4dc6-a663-a961ea8f6a0a</trackback:ping>
      <wfw:comment>http://blog.simplovation.com/blog/post/New-Simplovation-Company-Blog-is-Now-Online.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.simplovation.com/blog/syndication.axd?post=ee33de8e-f1fb-4dc6-a663-a961ea8f6a0a</wfw:commentRss>
    <feedburner:origLink>http://blog.simplovation.com/blog/post.aspx?id=ee33de8e-f1fb-4dc6-a663-a961ea8f6a0a</feedburner:origLink></item>
  </channel>
</rss>
