<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Bēniaǒ成长笔记</title><subtitle type="text">选择大于努力,信心决定成败! </subtitle><id>http://feed.cnblogs.com/blog/u/28396/rss</id><updated>2012-04-06T08:11:25Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/28396/rss"/><entry><id>http://www.cnblogs.com/beniao/archive/2012/03/08/2385114.html</id><title type="text">ASP.NET 4.5新特性一：强类型数据绑定（Strongly-Type Data-Bindings）</title><summary type="text">随着ASP.NET 4.5的发布提供了很多的新特性，其中强类型数据绑定（Strongly-Type Data-Bindings）为我们的开发非常便利，且使用率非常之高，本篇博文将详细建设这一新特性，欢迎大家拍砖。</summary><published>2012-03-08T11:19:00Z</published><updated>2012-03-08T11:19:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2012/03/08/2385114.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2012/03/08/2385114.html"/><content type="html">&lt;p&gt; 随着ASP.NET 4.5的发布提供了很多的新特性，其中强类型数据绑定（Strongly-Type Data-Bindings）为我们的开发非常便利，且使用率非常之高，本篇博文和大家一起学习分享这一新特性，欢迎大家拍砖。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;首先回顾一下老式的数据绑定方式，比如需要将数据绑定到Repeater控件，通常会采用如下的实现方式。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;ul&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;asp:Repeater&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="Repeater1"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="server"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;li&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"&gt;#&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);"&gt;Eval&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); background-color: rgb(245, 245, 245);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); background-color: rgb(245, 245, 245);"&gt;FirstName&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); background-color: rgb(245, 245, 245);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"&gt;#&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);"&gt;Eval&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); background-color: rgb(245, 245, 245);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); background-color: rgb(245, 245, 245);"&gt;LastName&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); background-color: rgb(245, 245, 245);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;li&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;asp:Repeater&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;ul&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;后台数据绑定方式不变，沿用DataSource提供数据源和DataBind()。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&amp;nbsp;Page_Load(&lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&amp;nbsp;db&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;WebFormsLab.Model.ProductsContext())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.customersRepeater.DataSource&amp;nbsp;=&amp;nbsp;db.Customers.ToList();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.customersRepeater.DataBind();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在ASP.NET 4.5中提供了强类型数据绑定新特性，通过控件的&lt;strong&gt;ModelType&lt;/strong&gt;指定要绑定的强类型对象全限定名，提供了新的数据绑定表示式&amp;lt;%#: Item.属性 %&amp;gt;，如上的Repeater控件的数据绑定采用新特性的实现如下代码块。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;ul&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;asp:Repeater&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="customersRepeater"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;ModelType&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;="WebFormsLab.Model.Customer"&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="server"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;li&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"&gt;#:&amp;nbsp;Item.FirstName&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"&gt;#:&amp;nbsp;Item.LastName&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;li&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;asp:Repeater&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;ul&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;详细请访问：&lt;a href="http://www.asp.net/vNext"&gt;http://www.asp.net/vNext&lt;/a&gt; &lt;/p&gt; &lt;img src="http://www.cnblogs.com/beniao/aggbug/2385114.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2012/03/08/2385114.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/beniao/archive/2012/01/09/2317173.html</id><title type="text">产品管理，明天会如何发展？</title><summary type="text">随着产品管理在国内的迅速发展以及相关体系的不断完善，在接下来的发展过程中，产品管理会呈现怎样的发展特点呢？本文将对产品管理在国内的发展方向、重点发展行业以及可能形成的市场规模进行预测。</summary><published>2012-01-09T07:28:00Z</published><updated>2012-01-09T07:28:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2012/01/09/2317173.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2012/01/09/2317173.html"/><content type="html">&lt;p&gt;随着产品管理在国内的迅速发展以及相关体系的不断完善，在接下来的发展过程中，产品管理会呈现怎样的发展特点呢？本文将对产品管理在国内的发展方向、重点发展行业以及可能形成的市场规模进行预测。&lt;/p&gt;&lt;p&gt;&lt;span id="more-9581"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #808000"&gt;&lt;strong&gt;发展依旧不平衡&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;产品管理的发展一直呈现出行业发展不平衡、地区发展不平衡、企业发展不平衡三个最突出的特点，这三个特点不会在短期内发生改变，而是会依旧呈现出来。&lt;/p&gt;&lt;p&gt;之所以出现这种情况，一方面是因为产品管理在国内的发展，缺乏足够的推动力，更重要的一方面是因为行业差异、地区经济水平以及企业认识的差距造成的。&lt;/p&gt;&lt;p&gt;在国内，产品管理发展较快的行业主要集中在新兴高科技行业、与国际市场有较多接触的行业，以及传统的采用产品管理体系的行业，主要集中在以下几个行业。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;IT行业：软件、互联网、硬件、通信。&lt;/li&gt;&lt;li&gt;金融行业：银行、证券公司、保险公司。&lt;/li&gt;&lt;li&gt;快消行业：食品、日化用品、保健品。&lt;/li&gt;&lt;li&gt;医药行业：生物制药、医疗器械。&lt;/li&gt;&lt;li&gt;家电企业：家用电器、工用电气。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;而对于那些传统生产企业，则发展比较缓慢。不过，在接下来的3~5年内，相信将会有越来越多的传统行业采用产品管理。之所以这么说，原因有三。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;中国市场融入国际市场的步伐越来越快&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;现在，市场的界限越来越模糊，大量的国外企业进入国内，同时，大量的国内企业也开始走出国门。这时中国会发现，参与国际市场的竞争，不单是简单的产品、技术层面上的竞争，而越来越多的是企业本身资源的综合较量，其中非常重要的一项就是如何建立一个运转高效、反应快速的企业资源流转体系。当然，这种体系不仅只有产品管理一种，但产品管理确实是一种非常有竞争力的体系，相信会有越来越多的企业愿意尝试使用这种新型的管理体系。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;市场竞争越来越国际化、多元化和白热化&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;由国内市场竞争转到全球竞争，这不是由企业意志来决定的，封闭的国内竞争已经结束，要想在长期的市场竞争中站稳脚跟，国内企业就不能再用短期的眼光来审视市场，而是需要用长期的、发展的眼光来规划企业的发展。&lt;/p&gt;&lt;p&gt;而产品管理有一个明显的特点就是产品战略、产品规划和产品战术三位一体紧密地结合，产品管理者一方面要为产品制定长期（3~5年）的发展战略和阶段规划，另一方面还要作为产品的唯一负责人来监控战略的实行，这样才能保证在产品的长期发展中，有专人进行专业的、有针对性的管理，从而保证企业产品能够按照既定的步骤来执行，增强企业产品的市场竞争能力。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;企业开始追求&amp;#8220;性价比&amp;#8221;高的生产流程&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;企业的资源毕竟是有限的，但面对市场竞争时，如何才能把有限的资源投入到能够带来最大收益的市场中呢？这就给所有的企业提出了一个最现实的问题：企业应该有一个&amp;#8220;高性价比&amp;#8221;的产品生产流程来保障。&lt;/p&gt;&lt;p&gt;从产品战略开始，一直到产品上市，在整个过程中，如何能够保证企业资源是处于最大化的应用，产品管理应该是最有效的保障了。产品管理能够在产品处于构想时，就保证企业资源进入到一个正确的过程中，而不会出现资源使用的随意性。因此，当企业面临这些问题时，就需要找到一种适合企业长期、有效参与市场竞争的体系来进行运作，而产品管理则是最具魅力的一种。&lt;/p&gt;&lt;p&gt;由此可以看出，在3~5年内，产品管理在国内传统行业中，必然会被越来越多的企业所采用。但这不可能一蹴而就、一步到位，认识的提高和体系的完善需要一个长期的过程，有发展，但不会太快。相比较那些已经采用了产品管理或者易于采用产品管理的行业，差距还是非常明显的。因此，发展的不平衡在短期内会持续存在。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;逐渐形成符合国情的独立知识体系&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这是毋庸置疑的，我们知道，任何理论体系的建立，都是基于大量的实践之上的。产品管理基于Marketing，但随着Marketing自身的变化以及更多企业对产品管理现实需求的不断加大，现在越来越多的迹象表明产品管理开始逐渐形成一门独立的学科：产品管理学。&lt;/p&gt;&lt;p&gt;在产品管理进入中国到目前为止，已经有不少的企业进行了尝试，但通常都是照搬国外产品管理的一些皮毛而已，在我看来，这个过程是必须的也是非常有意义的。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;由模仿到自主，对于一个基础薄弱的学科来说，是最佳的方式，一方面成本低，另一方面可以缩短意识差距。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;在这个过程中可以积累大量的实践案例，而这些案例则是形成符合国情的产品管理的宝贵财富。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;可以发现国外产品管理思想中的不足，产品管理是舶来品，所处的社会、市场环境的不同决定了这个思想被应用到国内企业身上时，很容易发生&amp;#8220;水土不服&amp;#8221;的情况，通过模仿学习，可以发现国外思想中的不足，然后结合国情加以改造。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;国外产品管理发展了80年，国内发展也不过十几年的时间，在这段时间中，采用了产品管理的国内企业产生了大量案例，而这些案例将为形成符合国情、独立的产品管理思想奠定基础。因此，在产品管理的后续发展中，肯定会有越来越多的社会机构和个人对这些案例进行整理、分析和总结，开始形成自己的产品管理思想体系，出现&amp;#8220;百家争鸣&amp;#8221;的情况。&lt;/p&gt;&lt;p&gt;在我看来，从&amp;#8220;照搬&amp;#8221;到&amp;#8220;自主发展&amp;#8221;再到&amp;#8220;百家争鸣&amp;#8221;，将是5年内必然出现的情况，而这种情况的出现，对于推动国内产品管理的发展非常有利，但需要注意的一点是：现在不少开始自主发展的机构和个人，因为思维的惯性，需要一段时间从国外的知识体系中脱离出来，而在这个过程中，肯定会出现&amp;#8220;大杂烩&amp;#8221;的情况，而对于意欲采用产品管理的企业来说，这是需要非常慎重的。因此，在接下来的5年内，是一个逐渐形成符合国情的、独立产品管理学科的阶段，而在这个阶段中，必然会是&amp;#8220;百家争鸣&amp;#8221;，并不断地和国外的产品管理思想进行互动，最终形成符合中国国情的产品管理思想体系。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #808000"&gt;&lt;strong&gt;行业差异明显，产品管理出现细分&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;这里所说的行业差异，主要是指&amp;#8220;不同行业对产品管理的认知度会因为行业的不同而有所差别&amp;#8221;。这个特点和第二点紧密关系，产品管理发展最快的三个行业&amp;#8212;&amp;#8212;IT、医药和快消&amp;#8212;&amp;#8212;各自对产品管理的认识都相差很大。&lt;/p&gt;&lt;p&gt;即使在IT行业，软件、互联网、硬件和通信这四个具体行业，对产品管理的认识也是有所差异的，其根本是由这些行业的产品特点决定的。提供服务性产品的行业和提供实物类产品的行业，其对产品管理的侧重就完全不同，例如在互联网行业，强调的是对产品本身的需求分析和产品定义；而在快速消费品行业，则更强调的是对产品在市场上营销资源的控制。&lt;/p&gt;&lt;p&gt;我们知道，现在出现的许多行业，在国外产品管理形成阶段是还没有出现的，因此，许多新兴行业在采用产品管理时，就不能直接采用产品管理的体系和流程，一方面要吸收国外产品管理的精华思想，另一方面还要在此基础上加以改造和发展。&lt;/p&gt;&lt;p&gt;在第二点中，提到在接下来的5年中，会逐步形成符合国情的、独立的产品管理思想和知识体系。同时，在这个形成过程中，会因为行业的差异性，很有可能会细分产品管理知识体系，例如IT行业产品管理知识体系，金融行业产品管理知识体系等，而这些细分体系的形成，除了需要社会机构的参与外，更重要的是需要大量的行业从业人员的参与和支持。但并不是说，这种细分的行业体系会脱离于第二点中提到的独立的产品管理知识体系而存在，因为这两者之间的关系就如同水和鱼，产品管理知识体系如水，是鱼赖以生存的环境；而细分的行业体系则是鱼，必须在水里才能生存下去，无论走得多远，都不会脱离开水。&lt;/p&gt;&lt;p&gt;我认为的理想状态是，在独立的产品管理体系下，有大量熟悉本行业的产品管理专家来研究行业产品管理知识体系的发展。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;以上三点预测了产品管理在国内未来发展的特点和趋势，总结一下，就是会出现&amp;#8220;两极分化、本土化、差异化&amp;#8221;的情况。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #808000"&gt;&lt;strong&gt;未来可能大规模采用PMS的行业&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;接下来，我对将来可能会大量采用产品管理的企业类型进行一下预测，这里不涉及到具体的行业，因为接下来所提到的企业类型在各个行业中都有存在。&lt;/p&gt;&lt;p&gt;通过分析，我认为在未来的3~5年内，产品管理会在以下三种类型的企业中快速发展。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;由项目型转型为产品型的企业。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;由提供单一销售向提供解决方案转型的企业。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;由单一制造向完整市场运作转型的企业。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;比如在金融行业的个人理财产品上，在未来的发展中就面临着由单一销售向为个人用户提供个人理财解决方案的要求。&lt;/p&gt;&lt;p&gt;这是因为随着国内经济的不断发展和个人收入的不断提高，个人理财已经成为一个非常热门的主题，而在这个主题背后隐藏着的需求就是&amp;#8220;个人理财产品的单一型&amp;#8221;。现在，有许多金融企业都已经看到了这个潜在的需求，纷纷推出多样化的金融服务，包括银行、保险公司、证券公司等，都已经开始推出多样化和个性化的金融产品，例如现在比较热的基金产品，已经多达上千种。同时随着国外金融机构的进入和人民币市场的逐渐开放，国内金融企业的压力越来越大，如何才能应对这种挑战，主要的一点就是要细分金融市场的用户，而不能像以前一样，只是简单地分为企业和个人用户，尤其在个人用户市场中，要求细分的需求更加强烈。&lt;/p&gt;&lt;p&gt;因此，在金融市场，个人要求产品细分和提供完整解决方案的需求非常强，这就要求金融企业必须建立产品管理来保障需求的实现，在未来的5年内，金融行业的产品管理必将会有迅猛的发展。&lt;/p&gt;&lt;p&gt;同样，在家电行业也是如此，在经过了&amp;#8220;战国时代&amp;#8221;后，家电行业在不同的领域已经形成了&amp;#8220;三国鼎立&amp;#8221;的市场局面，也就是说，家电行业中的资源已经由分散开始集中到几家大企业当中，并且，这些家电企业已经开始走出国门，开始参与国际竞争。&lt;/p&gt;&lt;p&gt;如何利用这些资源去赢得市场，就是摆在每个家电企业面前的最实际问题，在产品管理中，就不止一次地强调&amp;#8220;产品管理一定是要考虑全球化的市场战略&amp;#8221;，而这正好为国内家电企业的国际化发展提供了发展支持。&lt;br /&gt;这就是由单一制造向完整市场运作转型的企业所必须面对的前景。&lt;/p&gt;&lt;p&gt;在其他行业内，企业发展很不平衡，有基础好、发展快的，有基础差、发展慢的，具体何种企业适合采用产品管理，我们会另文再说。而我当然希望越来越多的国内企业采用产品管理。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #808000"&gt;&lt;strong&gt;结束语&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;在本文中，我们对产品管理在未来3~5年的发展进行了预测。既然是预测，那就不妨大胆一些，相信产品管理的发展，不是谁能够主导的，当然，也不是谁能够阻挡的，这是由客观的市场发展趋势决定的，不论是企业、个人还是提供产品管理服务的机构，唯一要做的就是抓住机会，发展自己。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #888888"&gt;&lt;strong&gt;作者张智渊，UCPM中国产品经理联盟发起人，长期关注中国产品管理体系的建设和发展，曾在国内多家知名企业从事产品管理工作，具有丰富的一线产品管理经验和扎实的理论基础。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #888888"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.programmer.com.cn/8672/" target="_blank"&gt;&lt;strong&gt;&lt;font color="#0088cc"&gt;本文选自《程序员》杂志2011年11期，更多精彩内容敬请关注11期杂志&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/beniao/aggbug/2317173.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2012/01/09/2317173.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/beniao/archive/2011/11/22/2257843.html</id><title type="text">产品经理的34个感想</title><summary type="text">对于产品经理而言，别以为一个产品上市了就算大功告成，可以马放南山了，这只能说是产品管理过程中新产品项目开发阶段的结束，其实重头戏才刚刚开始，我们还要依照既定的年度营销策略来为产品的市场价值交换呕心沥血。</summary><published>2011-11-22T05:20:00Z</published><updated>2011-11-22T05:20:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2011/11/22/2257843.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2011/11/22/2257843.html"/><content type="html">&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; line-height: 22px; background-color: #ffffff; "&gt;&lt;p&gt;&amp;#8220;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;对于产品经理而言，别以为一个产品上市了就算大功告成，可以马放南山了，这只能说是产品管理过程中新产品项目开发阶段的结束，其实重头戏才刚刚开始，我们还要依照既定的年度营销策略来为产品的市场价值交换呕心沥血。&lt;/em&gt;&amp;#8221;&lt;/p&gt;&lt;p&gt;以上内容是我在公司IMPlayer上市后，产品部内部总结会上做的发言，其实对于我来说，说不说这话都和我现在的工作状态没有太大关系，因为我负责的V产品线的新产品还远在规划阶段，这些话是我说给亮仔和谢韵琳的，毕竟他们算是新人，让他们思想上有个重视也好。&lt;span id="more-8773" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;#8220;各位，虽然IMPlayer成功上市了，正如阿泡说的，这才是刚刚开始，咱们今天的会议，一方面是总结一下这段时间的工作，另一方面是安排一下接下来的工作，&amp;#8221; 周扬还是那样不紧不慢地抽着烟说道。&lt;/p&gt;&lt;p&gt;亮仔摸了摸越发闪亮的脑袋说：&amp;#8220;扬哥，你就放心吧，接下来的工作我和小谢一定会再接再厉，不辱使命。说实话，别看我是研发转过来的，但必须承认我做产品经理确实有一种天才般的感觉，就说那次吧&amp;#8230;&amp;#8230;&amp;#8221;&lt;/p&gt;&lt;p&gt;自从IMPlayer成功上市后，亮仔的气场就更强了，走到哪里都给人一种打了鸡血的感觉，按照他的话说，他现在也算是朝成功的产品经理更进一步了。在我们BS的眼光中他依然不以为耻，反以为荣，没事就在市场部和研发部转悠，并恬不知耻地告诉这些团队中的人，IMPlayer有啥情况直接找他就可以了。&lt;/p&gt;&lt;p&gt;亮仔清清嗓子，看来是准备把内部总结会变成个人事迹报告会了，周扬扔给他一支烟，意思是赶快闭嘴，现在还没到论功行赏的时候呢。亮仔果然是禁不起糖衣炮弹的攻击，在这支烟的诱惑下，他果断地放弃了继续个人事迹报告会的意图，等着周扬安排工作。&lt;/p&gt;&lt;p&gt;周扬又拿出两支烟，一支给我，一支自己夹在手指间，但没有点上，旁边的小娟提醒我们三个烟民这已经是各位本次会议的最后一支烟了。周扬边在指头间拨弄烟边说道：&amp;#8220;其实这也是公司的安排，公司要转型，要更加正规，很多工作必须现在就重视并开展起来，对于咱们产品部来说，就是要逐步建立起规范的产品管理知识体系出来，也算是公司知识管理的一个组成部分吧。对了，泡，你对构建公司这个产品管理知识体系有什么体会或者经验没有？&amp;#8221;&lt;/p&gt;&lt;p&gt;我挠挠头，说道：&amp;#8220;这个还真没什么太多经验，以前的公司也没太重视过这个工作的开展。不过既然是公司要求建立这个知识体系，那咱们还是老规矩，边琢磨边实践吧，我个人觉得现在可以做的就是把前段时间的工作完全梳理一下，至少可以把一些原则性的东西和工作中涉及到工具方法什么的总结出来，我觉得这是比较现实和可行的。&amp;#8221;&lt;/p&gt;&lt;p&gt;&amp;#8220;好，就按你说的，先从总结工具方法入手，这段时间咱们也摸索了一些思路和方法，花点时间把这些形成一个体系和流程。不错，谁来做呢？&amp;#8221;周扬自言自语道：&amp;#8220;亮仔和小谢得跟进IMPlayer的上市情况，肯定没什么时间。小娟和苏勇经验不行，现在就是阿泡和刘宇了，你俩看谁承担一下这个工作呢？&amp;#8221;&lt;/p&gt;&lt;p&gt;没等我表态，周扬就对我说道：&amp;#8220;我看这样吧，就由你来负责吧。&amp;#8221;&lt;/p&gt;&lt;p&gt;说完，就让小娟把决议记到会议记录中，我赶忙说道：&amp;#8220;别呀，我也很忙的，我看是不是再考虑一下，让大家都发表一下意见&amp;#8230;&amp;#8230;&amp;#8221;&lt;/p&gt;&lt;p&gt;&amp;#8220;嗯，你说得对，咱们产品部是该讲民主的。这样吧，大家举手表决，举手的表示同意，不举手的表示无疑义。&amp;#8221;&lt;br /&gt;周扬话音刚落，&amp;#8220;唰唰&amp;#8221;就举起六只手，周扬一乐，说道：&amp;#8220;好，全票通过，这个工作由阿泡来完成。娟子，把这次民主表决的结果记录下来，以备查阅。&amp;#8221;&lt;/p&gt;&lt;p&gt;顿时，我只觉得天昏地暗，产品部竟然这样暗无天日啊，头脑中不由地涌现出一个做产品经理的老外朋友说的两句话：&lt;/p&gt;&lt;p&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #808080; "&gt;A Business Is Not a Democracy（商业无民主可言）&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #808080; "&gt;Product Management is Inherently Political（产品管理就是内部政治）&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;当时我还不信，现在来看，真是至理名言啊！&lt;/p&gt;&lt;p&gt;改变周扬想法的可能性是几乎没有了，但我还是要争取一下我应该有的权利，于是我说道：&amp;#8220;既然大家这样黑我，那我就认了，不过我有一个条件。&amp;#8221;周扬终于点上了最后一支烟，慢悠悠地说道：&amp;#8220;只要不要钱，不要人，什么都行。&amp;#8221;&lt;/p&gt;&lt;p&gt;&amp;#8220;那，那我没条件了！&amp;#8221;&lt;/p&gt;&lt;p&gt;就这样，我的最后一点权利在周扬的色厉内荏中也化为乌有了。&lt;/p&gt;&lt;p&gt;&amp;#8220;好，今天的总结会就到这里，娟子，把会议记录整理一下，CC给韩老大一份，散会！&amp;#8221;&lt;/p&gt;&lt;p&gt;整个事情的经过就是这样的，不过周扬在会后和我说了，这个工作是一个持续进行的事情，没有明确完成的时间，只要认真做好就可以了。&lt;/p&gt;&lt;p&gt;既然周扬都这么说了，那我也就踏实多了，不过我和周扬说了，既然交给我来做，那具体怎么做就是我的事情了，周扬说那是自然。&lt;/p&gt;&lt;p&gt;于是，我就先总结了一些我对于产品管理工作的感想，其实在我看来，我是希望这些感想能够成为产品部的原则的。&lt;/p&gt;&lt;p&gt;以下就是我的一些心得。&lt;/p&gt;&lt;ol style="margin-top: 3px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 48px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;我们为谁做产品决定了我们要做什么样的产品，我们做什么样的产品决定了我们的产品能走多远，我们的产品能走多远才最终决定了我们的企业能走多远。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;在产品团队中，产品经理不是最聪明的人，最聪明的人在你的团队中，去发现这些聪明的人、聪明的想法。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理想做好工作，必需要具备&amp;#8220;五个一&amp;#8221;：一个脑袋、一双眼睛、一对耳朵、一双手以及一双脚。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;主动是要找到目标，好学是要实现目标，对产品经理这个人是如此，对产品经理的工作更是如此。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;对于&amp;#8220;产品&amp;#8221;的认识决定了产品经理工作的广度，对于&amp;#8220;需求&amp;#8221;的认识决定了产品经理工作的深度。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;对于产品经理来说，根本要关注的是如何提供给用户解决问题的最好方法，而不是提供给用户一个完美的产品。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;一个好产品并不一定是一个能挣钱的产品，而能挣钱的产品，对于企业来说，则肯定是一个好产品。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;作为一个产品经理，如果你还做不到为企业挣钱，那么就要先做到为企业省钱。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;用户可以影响我们的产品方向，但不能决定我的产品方向。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;教育用户这个问题的根本不是是否需要教育用户，而是教育用户的成本到底由谁来承担，这绝不能成为产品经理的一种惯性思维，一定视情况而论。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理的理想且终极的目标就是：在合适的时间、合适的地点向合适的用户推出合适的产品！&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理，一个在跷跷板上工作的人，一边是用户的利益，一边是企业的利益，做好了是左右逢源，做不好就是左右为难&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;一个合格的产品经理应该是拉出去可以冲锋陷阵，拉回来可以排兵布阵，既有参谋的眼光，又有指挥官的果断！&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;一个产品经理需要了解的技术领域，宽度需要两英里，深度需要两英寸！&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理无非就做两件事情：知道做什么、知道怎么做。前者就是产品经理的战略规划，后者就是产品经理的战术指导。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理，要相信自己的双腿，不要相信自己的耳朵！&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;作为一个产品经理，不要向别人轻易地承诺，也不要相信别人轻易的承诺。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;情感是热血的，商业是冷血的，产品经理应该很多时候是一个凭热血去做冷血事情的角色。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理在公司内的关系很简单，要么去和稀泥，要么去得罪人，但现在看，得罪人要比和稀泥更有前途。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;都说忠言逆耳利于行，但对于产品经理来说，不但要有忠言，关键还得顺耳，才有可能利于行，这或许就是产品经理沟通能力的最高体现吧。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;作为一个产品经理，在决策建议上可以允许失误，但绝对不能允许愚蠢。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;成功就是不打折扣的执行，失败则是一个折扣接着又一个折扣的执行，因此，产品经理是不允许在业务执行上打折扣的。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;无数的事实已经证明，一个产品的成功并不是由这个产品经理做对了多少决定的，而是由他的竞争对手做错了多少决定的。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理一定是一个动脑比动腿多的职位，但要想更好地动脑，前提是腿必须先动起来。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;这个世界上并不是没有需求，而是我们缺乏发现需求的眼睛。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;都说产品经理的第一能力就是沟通交流的能力，怎么沟通、怎么交流，不是说你把该说的说了就可以了，而应该是把该说的说好了、说对了，说到团队成员的心窝子里才能证明你会沟通、会交流。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理要面对的各类角色太多，很多时候都会形成一种对立面，在不涉及原则的情况，产品经理要学会先往后退。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理一定要学会说&amp;#8220;不&amp;#8221;，面对的对象可能是我们的高层、伙伴以及客户，之所以这样，究其根本，是为了避免市场向我们说&amp;#8220;不&amp;#8221;。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;对于产品经理来说，不是我们产品的机会越来越少，而是我们挖掘和发现机会的难度越来越大&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;对于产品经理而言，要处理好各种关系，不但要以人为本，还要以人的利益为本。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;对于产品经理而言，知道不做什么要比知道做什么更有价值。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;把任何想法都记录下来，如果不记录下来，这个想法将永远只是&amp;#8220;想法&amp;#8221;。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;对于产品经理而言，应该是没事不找事，有事不怕事。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;产品经理最大的智慧就是把别人的智慧变成自己的智慧。&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;好了，感想就这些，大家认为是否正确那就是各人在实际工作中去体会了，不多说了，下班了，我得回去好好想想，这个工作怎样才能做好。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; line-height: 22px; background-color: #ffffff; "&gt;&lt;p&gt;&lt;strong style="border-style: initial; border-color: initial; color: #0088cc; text-decoration: none; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "&gt;&lt;a href="http://www.programmer.com.cn/8672/" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #0088cc; text-decoration: none; "&gt;本文选自《程序员》杂志2011年11期，更多精彩内容敬请关注11期&lt;/a&gt;杂志。&lt;/strong&gt;&lt;/p&gt;&lt;/span&gt;   &lt;img src="http://www.cnblogs.com/beniao/aggbug/2257843.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2011/11/22/2257843.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/beniao/archive/2011/11/21/2255657.html</id><title type="text">Bing Maps开发扩展一：Oracle Spatial的空间数据渲染</title><summary type="text">Oracle Spatial的空间数据应用和微软SQL Server 2008的大同小异，SQL Server 2008提供了基于SQLCLR的编程支持，Oracle Spatial暂时还没有比较完善的组件支持。在实际开发应用中我们可以选择折中的解决方案，比如将空间数据读取为通用的空间数据表达格式（如：WKT），利用开源的WKT读取组件便可将WKT数据解析为对应的空间数据坐标点或坐标集合。</summary><published>2011-11-21T14:36:00Z</published><updated>2011-11-21T14:36:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2011/11/21/2255657.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2011/11/21/2255657.html"/><content type="html">&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;Oracle Spatial的空间数据应用和微软SQL Server 2008的大同小异，SQL Server 2008提供了基于SQLCLR的编程支持，Oracle Spatial暂时还没有比较完善的组件支持。在实际开发应用中我们可以选择折中的解决方案，比如将空间数据读取为通用的空间数据表达格式（如：WKT），利用开源的WKT读取组件便可将WKT数据解析为对应的空间数据坐标点或坐标集合。&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;下面以一个实际的案例来介绍如何读取Oracle Spatial数据为WKT,并通过WKT组件解析数据，最终在Bing Maps中进行渲染。现要实现将数据库中地市表配置的全国地市数据中四川省的数据读取出来在地图中进行渲染，Oracle Spatial的sdo_geometry数据类型则可以直接使用函数（get_wkt()）进行转换为clob数据类型数据。&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #0000FF;"&gt;select&lt;/span&gt;&amp;nbsp;t.areacode,t.areaname,&amp;nbsp;(t.area.get_wkt())&amp;nbsp;wkt&amp;nbsp;&lt;span style="color: #0000FF;"&gt;from&lt;/span&gt;&amp;nbsp;areainfo&amp;nbsp;t&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;areacode&amp;nbsp;&lt;span style="color: #808080;"&gt;like&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;8623%&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;/span&gt;为了方便客户端的使用，服务端可以通过WCF服务封装数据为数组返回，以下为地市实体对象数据结构和WCF服务的定义。&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;namespace&lt;/span&gt;&amp;nbsp;OracleSpatial.DataService.Models&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&amp;nbsp;AreaInfo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataMember]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;AreaCode&amp;nbsp;{&amp;nbsp;&lt;span style="color: #0000FF;"&gt;get&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;set&lt;/span&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataMember]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;AreaName&amp;nbsp;{&amp;nbsp;&lt;span style="color: #0000FF;"&gt;get&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;set&lt;/span&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataMember]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;WKT&amp;nbsp;{&amp;nbsp;&lt;span style="color: #0000FF;"&gt;get&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;set&lt;/span&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;}&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;namespace&lt;/span&gt;&amp;nbsp;OracleSpatial.DataService&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ServiceContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;interface&lt;/span&gt;&amp;nbsp;IGeometryService&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[OperationContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;AreaInfo&amp;gt;&amp;nbsp;GetAreaInfo();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;Bing Maps的Silverlight客户端调用WCF服务以获取数据库中的数据，这里就不做详细介绍。在这里需要特别介绍的是几个开源应用：&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;1、SharpMap开源的GeoAPI.&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;2、NetTopologySuite.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;/span&gt;这两个开源库分别定义好了不同GIS坐标系的空间标准，以及基于地理空间的空间对象、空间计算和空间分析接口，在应用开发中可以非常方便的完成空间数据的读写、验证、计算和分析功能。本文使用到了WKT读取组件（WKTReader），可以实现将WKT格式的字符串解析为符合GIS坐标系标准的通用空间对象（Geometry），此空间对象中就包含了完整的WKT数据的描述，如WKT所表示的坐标点，坐标点集合，内部坐标点，空间面积等等。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;MainPage()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.Loaded&amp;nbsp;+=&amp;nbsp;(sender,&amp;nbsp;e)&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LoadChinaMap();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GeometryServiceClient&amp;nbsp;service&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;GeometryServiceClient();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;service.GetAreaInfoCompleted&amp;nbsp;+=&amp;nbsp;service_GetAreaInfoCompleted;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;service.GetAreaInfoAsync();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;service_GetAreaInfoCompleted(&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;GetAreaInfoCompletedEventArgs&amp;nbsp;e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(e.Error&amp;nbsp;==&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ObservableCollection&amp;lt;AreaInfo&amp;gt;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;e.Result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WKTReader&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;WKTReader();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IGeometry&amp;nbsp;geometry&amp;nbsp;=&amp;nbsp;reader.Read(result[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;].WKT);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/201111905.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;通过WKTReader将WKT格式的空间数据解析为IGeometry接口的空间对象，就可以非常方便的获取WKT空间数据中的各种坐标值。如果上面所获取到的数据，我们就可以通过绘制多边形以及通过自定义标注将数据渲染在地图中。&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&amp;nbsp;service_GetAreaInfoCompleted(&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&amp;nbsp;sender,&amp;nbsp;GetAreaInfoCompletedEventArgs&amp;nbsp;e)&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(e.Error&amp;nbsp;==&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ObservableCollection&amp;lt;AreaInfo&amp;gt;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;e.Result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WKTReader&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;item&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;result)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;WKTReader();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IGeometry&amp;nbsp;geometry&amp;nbsp;=&amp;nbsp;reader.Read(item.WKT);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;边界&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MapPolygon&amp;nbsp;line&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;MapPolygon();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.Locations&amp;nbsp;=&amp;nbsp;CoordinateConvertor.CoordinatesToLocationCollection(geometry.Coordinates);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.Fill&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;SolidColorBrush(Colors.Gray);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.BorderBrush&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;SolidColorBrush(Colors.Green);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.BorderThickness&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Thickness(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.MouseEnter&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;MouseEventHandler(line_MouseEnter);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.MouseLeave&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;MouseEventHandler(line_MouseLeave);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.mlayer.Children.Add(line);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;名称标注&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.mlayer.AddChild(&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PointControl(item.AreaName),&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Microsoft.Maps.MapControl.Location(geometry.InteriorPoint.Y,&amp;nbsp;geometry.InteriorPoint.X));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;line_MouseLeave(&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;MouseEventArgs&amp;nbsp;e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MapPolygon&amp;nbsp;mp&amp;nbsp;=&amp;nbsp;sender&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;MapPolygon;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mp.Fill&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;SolidColorBrush(Colors.Gray);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;line_MouseEnter(&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;MouseEventArgs&amp;nbsp;e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MapPolygon&amp;nbsp;mp&amp;nbsp;=&amp;nbsp;sender&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;MapPolygon;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mp.Fill&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;SolidColorBrush(Colors.Yellow);&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/201111904.png" width="632" height="495" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;相关资源：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[1]、SharpMap:&lt;a href="http://sharpmap.codeplex.com/"&gt;http://sharpmap.codeplex.com&amp;nbsp;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;[2]、NetTopologySuite:&lt;a href="http://code.google.com/p/nettopologysuite/"&gt;http://code.google.com/p/nettopologysuite&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[3]、WKT：&lt;a href="http://www.opengis.org/techno/specs.htm"&gt;http://www.opengis.org/techno/specs.htm&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;fieldset style="font-family: Arial; color: #003333"&gt;  &lt;p&gt;&lt;legend&gt;版权说明&lt;/legend&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp; 本文属原创文章，欢迎转载且注明文章出处，其版权归作者和博客园共有。为了保存作者的创作热情，请在转载后的明显位置标记本文出处。&amp;nbsp;&amp;nbsp; &lt;/p&gt;  &lt;p&gt;&amp;nbsp; 作&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;者：Beniao&lt;/p&gt;  &lt;p&gt;&amp;nbsp;文章出处：&lt;a href="http://beniao.cnblogs.com/" target="_blank"&gt;http://beniao.cnblogs.com/&lt;/a&gt;&amp;nbsp; 或&amp;nbsp; &lt;a href="http://www.cnblogs.com/" target="_blank"&gt;http://www.cnblogs.com/&lt;/a&gt;&lt;/p&gt;&lt;/fieldset&gt;&lt;img src="http://www.cnblogs.com/beniao/aggbug/2255657.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2011/11/21/2255657.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/beniao/archive/2011/11/19/2255142.html</id><title type="text">DeepEarth自定义图元的中心位置纠偏</title><summary type="text">DeepEarth为B/S的地图应用开发提供了非常完善的解决方案，对于不熟悉Silverlight的同学来说，在开发中难免遇到各种大大小小的问题，本篇借鉴于最近网上一个朋友给我发邮件提出的问题，详细介绍下在DeepEarth中开发自定义图元中，如何去处理中心位置偏差的问题。</summary><published>2011-11-19T09:05:00Z</published><updated>2011-11-19T09:05:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2011/11/19/2255142.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2011/11/19/2255142.html"/><content type="html">&lt;p&gt;&lt;font class="Apple-style-span" color="#0000ff" face="'Courier New'"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px;"&gt;&lt;span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;font class="Apple-style-span" face="'Courier New'" size="2"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; line-height: 19px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;/span&gt;DeepEarth为B/S的地图应用开发提供了非常完善的解决方案，对于不熟悉Silverlight的同学来说，在开发中难免遇到各种大大小小的问题，本篇借鉴于最近网上一个朋友给我发邮件提出的问题，详细介绍下在DeepEarth中开发自定义图元中，如何去处理中心位置偏差的问题。&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-weight: normal; line-height: 19px; font-size: small; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;对于熟悉Silverlight的同学来说是一件很简单的事情，所谓的偏差无非就是坐标的偏移，通过坐标偏移技术（TranslateTransform）就可以解决此问题。首先我们先看看DeepEarth中对于默认的圆形图元（PointControl）和线条(LineStringControl)的渲染。&lt;/span&gt;&lt;/p&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;dpoint1&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PointControl()&lt;/span&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;40.554000079631&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;116.05599966645&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;dpoint2&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PointControl()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;38.92&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;121.62&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;dpoint3&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PointControl()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;31.23&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;121.47&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;dpoint4&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PointControl()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;29.57&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;106.55&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;geometryLayer.Add(dpoint1);&lt;br /&gt;geometryLayer.Add(dpoint2);&lt;br /&gt;geometryLayer.Add(dpoint3);&lt;br /&gt;geometryLayer.Add(dpoint4);&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;dline&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;LineStringControl&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Locations&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;ObservableCollection&amp;lt;Location&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;40.554000079631&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;116.05599966645&lt;/span&gt;&amp;nbsp;},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;38.92&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;121.62&lt;/span&gt;&amp;nbsp;},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;31.23&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;121.47&lt;/span&gt;&amp;nbsp;},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;29.57&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;106.55&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;geometryLayer.Add(dline);&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/201111902.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;/span&gt;以上使用DeepEarth内脏的PointControl和LineStringControl可以正常的渲染图元点和线条，且线条的连线也处于图元点的中心。默认图元不具备标签功能，最终要实现图元下面显示标签功能，我们可以通过扩展Pointcontrol来实现。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;[TemplatePart(Name&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;tbName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&amp;nbsp;Type&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;(TextBlock))]&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&amp;nbsp;PointComponent&amp;nbsp;:&amp;nbsp;PointControl&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&amp;nbsp;&amp;nbsp;TextBlock&amp;nbsp;tbName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;nameValue&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;PointComponent(&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;name)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&lt;span style="color: #0000FF;"&gt;base&lt;/span&gt;()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DefaultStyleKey&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;(PointComponent);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.Style&amp;nbsp;=&amp;nbsp;Application.Current.Resources[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;PointStyle&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;Style;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.nameValue&amp;nbsp;=&amp;nbsp;name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;OnApplyTemplate()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;base&lt;/span&gt;.OnApplyTemplate();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.tbName&amp;nbsp;=&amp;nbsp;GetTemplateChild(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;tbName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;TextBlock;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.tbName.Text&amp;nbsp;=&amp;nbsp;nameValue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;}&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;以上扩展控件（PointComponent）通过继承PointControl实现，其引用了样式PointStyle来定制控件呈现的外观。样式代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Style&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;TargetType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="app:PointComponent"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;x:Key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="PointStyle"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Setter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Property&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Template"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Setter.Value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ControlTemplate&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;TargetType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="app:PointComponent"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RenderTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;CompositeTransform&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="PART_CompositeTransform"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RenderTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="20"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Ellipse&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="0"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="16"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="16"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Yellow"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="RoyalBlue"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;StrokeThickness&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="2"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Center"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Center"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Text&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="测试"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Grid.Row&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="1"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;x:Name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="tbName"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ControlTemplate&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Setter.Value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Setter&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Style&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;/span&gt;此时就可以使用扩展的控件进行图元渲染了，下面模拟坐标对扩展控件进行测试。&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;北京&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;point1&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PointComponent(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;北京&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;40.554000079631&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;116.05599966645&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;大连&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;point2&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PointComponent(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;大连&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;38.92&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;121.62&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;上海&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;point3&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PointComponent(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;上海&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;31.23&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;121.47&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;重庆&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;point4&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PointComponent(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;重庆&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;29.57&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;106.55&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;geometryLayer.Add(point1);&lt;br /&gt;geometryLayer.Add(point2);&lt;br /&gt;geometryLayer.Add(point3);&lt;br /&gt;geometryLayer.Add(point4);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;line&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;LineStringControl&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Locations&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;ObservableCollection&amp;lt;Location&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;40.554000079631&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;116.05599966645&lt;/span&gt;&amp;nbsp;},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;38.92&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;121.62&lt;/span&gt;&amp;nbsp;},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;31.23&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;121.47&lt;/span&gt;&amp;nbsp;},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Location&amp;nbsp;{&amp;nbsp;Latitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;29.57&lt;/span&gt;,&amp;nbsp;Longitude&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;106.55&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;};&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;geometryLayer.Add(line);&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/201111900.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;仔细观察上图可发现，线条所连接的点并非是图元点的中心，而是整个扩展控件的中心，于此我们需要多扩展控件的位置进行适当的调整，以适应线条连接在圆形图元点的中心位置。&lt;span style="color: #99cc00; "&gt;PS：要处理这个位置偏差其实是很简单的事情，直接使用Silverlight的&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; line-height: 19px; font-size: small; color: #99cc00; "&gt;偏移技术（TranslateTransform）就搞定，不知为什么，会有那么多的同学提问如何解决。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;可以通过&lt;span class="Apple-style-span" style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff; "&gt;工具&lt;a href="http://www.microsoft.com/china/expression/Expression-Blend/default.mspx" target="_blank" style="color: #1a8bc8; text-decoration: none; "&gt;Microsoft Expression Blend&lt;/a&gt;，合理调整扩展控件（PointComponent）的样式中圆形图元的偏移值，达到线条的链接指向扩展控件的圆形图元中心点。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/201111903.jpg" alt="" /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;调整的后的控件样式和最终效果图如下：&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Style&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;TargetType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="app:PointComponent"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;x:Key&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="PointStyle"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Setter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Property&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Template"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Setter.Value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ControlTemplate&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;TargetType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="app:PointComponent"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RenderTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;CompositeTransform&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="PART_CompositeTransform"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RenderTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="20"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Ellipse&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="0"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="16"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="16"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Yellow"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="RoyalBlue"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;StrokeThickness&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="2"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Center"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Center"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Ellipse.RenderTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TranslateTransform&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;X&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="0"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Y&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="8"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TranslateTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Ellipse.RenderTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Ellipse&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Text&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="测试"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Grid.Row&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="1"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;x:Name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="tbName"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock.RenderTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TranslateTransform&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;X&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="0"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Y&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="4"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TranslateTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock.RenderTransform&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ControlTemplate&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Setter.Value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Setter&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Style&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/201111901.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://files.cnblogs.com/beniao/Maps/DpMaps_20111119.rar"&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/beniao/SLAnimation/DC.gif" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;推荐阅读：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[1]、&lt;a href="http://www.cnblogs.com/beniao/archive/2010/03/21/1685670.html"&gt;Silverlight &amp;amp; Blend动画设计系列一：偏移动画（TranslateTransform）&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[2]、&lt;a href="http://www.cnblogs.com/beniao/archive/2010/01/13/1646446.html"&gt;[Silverlight]Bing Maps开发系列文章&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;fieldset style="font-family: Arial; color: #003333"&gt;  &lt;p&gt;&lt;legend&gt;版权说明&lt;/legend&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp; 本文属原创文章，欢迎转载且注明文章出处，其版权归作者和博客园共有。为了保存作者的创作热情，请在转载后的明显位置标记本文出处。&amp;nbsp;&amp;nbsp; &lt;/p&gt;  &lt;p&gt;&amp;nbsp; 作&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;者：Beniao&lt;/p&gt;  &lt;p&gt;&amp;nbsp;文章出处：&lt;a href="http://beniao.cnblogs.com/" target="_blank"&gt;http://beniao.cnblogs.com/&lt;/a&gt;&amp;nbsp; 或&amp;nbsp; &lt;a href="http://www.cnblogs.com/" target="_blank"&gt;http://www.cnblogs.com/&lt;/a&gt;&lt;/p&gt;&lt;/fieldset&gt;&lt;img src="http://www.cnblogs.com/beniao/aggbug/2255142.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2011/11/19/2255142.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/beniao/archive/2011/11/19/2032456.html</id><title type="text">研发管理：产品研发团队的早会</title><summary type="text">产品研发团队在履行各种产品研发过程中，从大的产品启动会，需求讨论/评审会，架构评审会到较小的团队早会，技术讨论会，进度跟踪会等，各种大小会议频繁的召开，有效的推进产品研发的成功。本文将结合本人从事产品研发团队管理的相关管理模式和经验，谈谈产品研发团队的早会，又称：每日例会。敏捷软件开发的实践工作中，也提出召开每日例会。</summary><published>2011-11-18T16:29:00Z</published><updated>2011-11-18T16:29:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2011/11/19/2032456.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2011/11/19/2032456.html"/><content type="html">&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;百度百科定义:研发管理就是在研发体系结构设计和各种管理理论基础之上，借助信息平台对研发过程中进行的团队建设、流程设计、绩效管理、风险管理、成本管理、项目管理和知识管理等的一系列协调活动。[&lt;a href="http://baike.baidu.com/view/1585539.htm"&gt;&lt;strong&gt;详细&lt;/strong&gt;&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;产品研发团队在履行各种产品研发过程中，从大的产品启动会，需求讨论/评审会，架构评审会到较小的团队早会，技术讨论会，进度跟踪会等，各种大小会议频繁的召开，有效的推进产品研发的成功。&lt;strong&gt;&lt;a href="http://baike.baidu.com/view/1916889.htm"&gt;早会&lt;/a&gt;&lt;/strong&gt;，又称：&lt;span class="Apple-style-span" style="font-family: Simsun; line-height: 23px; background-color: #f5fafe; "&gt;每日例会。敏捷软件开发的实践工作中，也提出召开每日例会。可参考：&lt;/span&gt;&lt;a href="http://www.infoq.com/cn/news/2008/05/good-standup-meeting"&gt;http://www.infoq.com/cn/news/2008/05/good-standup-meeting&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="display: inline-block; "&gt;&lt;/div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;产品研发团队中的例会，其主要作用是：&lt;div style="display: inline-block; "&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; line-height: 25px; background-color: #ffffff; "&gt;团队成员间工作进度的沟通和协调。&lt;/span&gt;所谓&amp;#8220;&lt;strong&gt;&lt;a href="http://baike.baidu.com/view/1860371.htm"&gt;无规矩不成方圆&lt;/a&gt;&lt;/strong&gt;&amp;#8221;，既然是会议，无论是正式还是非正式的会议，都应该具备一定的会议制度和流程，以保障会议的顺利召开，让参会的干系人通过会议讨论，以达到共识为目的。当然不是所有的会议结束后都可以统一观点，达成共识。&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;完善的会议制度或会议章程，可以有效的约束会议的讨论范围。&amp;nbsp;我所在的单位是一家从事软件研发、软件实施及软件服务的公司，去年中开始接手我所在的产品研发团队以及团队所研发的软件产品管理工作。针对早会团队人员一起制度了一份会议章程：&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;一、团队成员研发工作进度与问题汇报&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;二、项目负责人对客户现场产品运行情况汇报&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;三、针对研发问题和项目问题初步讨论&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;四、团队成员工作安排与计划&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;/span&gt;五、其他相关问题[公司制度宣称、团队活动策划等]&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;六、回顾会议内容输出会议纪要&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;会议章程可以有效的约束早会有序的开展，不同会议环节针对性的讨论和处理不同问题。通过长期在团队中实践，早例会对于提高团队的工作积极性非常有用，主要体现在以下几方面：&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;一、团队成员清楚了自己手里的工作进展以及遇到的相关问题&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;二、每天可以及时的跟踪产品研发的进度及客户现场系统运行情况&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;三、团队成员清楚了自己每项工作的完成情况和后续工作计划&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;四、对于工作的相关制度可以及时、有效的宣贯到团队中&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;五、加强团队成员间的沟通，相互了解&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;六、......&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;推荐阅读：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[1]、Scrum之站立例会：&lt;a href="http://www.cnblogs.com/zhoujg/archive/2009/07/25/1531054.html"&gt;http://www.cnblogs.com/zhoujg/archive/2009/07/25/1531054.html&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/beniao/aggbug/2032456.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2011/11/19/2032456.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/beniao/archive/2011/11/13/2246927.html</id><title type="text">中国式产品管理，探索中前行</title><summary type="text">中国的产品管理，其实才刚刚上路，我们依然需要在探索中前行。</summary><published>2011-11-12T16:42:00Z</published><updated>2011-11-12T16:42:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2011/11/13/2246927.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2011/11/13/2246927.html"/><content type="html">&lt;p&gt;1998年，宝洁公司的EPS（Earnings Per Share，每股收益）只有14%~15%，低于华尔街的期望。1994~1999年，宝洁公司的收益始终在1.4%~5.5%之间，低于公司内部7%的目标。在1998年前的整整十年中，宝洁公司始终没有推出一个有影响力的新品牌。&lt;/p&gt;&lt;p&gt;究其原因，除了受到更多传统竞争对手（如联合利华）以及新兴竞争对手（如沃尔玛自有品牌）的冲击外，还有一个更为重要的原因是宝洁曾经引以自豪的品牌管理系统出现了创新匮乏、效率低下的问题。&lt;/p&gt;&lt;p&gt;于是在1998年9月，宝洁公司宣布了一项名为&amp;#8220;Organization 2005&amp;#8221;的公司重组计划，重点是基于品牌和产品线重构公司的组织架构、工作流程、企业文化和薪资结构，其目的在于增强公司的竞争优势和营业效率。&amp;#8220;Organization 2005&amp;#8221;计划实施后，宝洁公司的年销售额增长了6%~8%，年收入增长了13%~15%。&lt;span id="more-8766"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;我们知道，产品管理诞生于宝洁，但通过这个案例可以看出，在宝洁自身的产品管理发展的80年中，其组织结构的形式也随着企业自身的发展和市场的变化发生了巨大改变。&lt;/p&gt;&lt;p&gt;我无意去赞美宝洁的伟大，只是希望通过宝洁的&amp;#8220;Organization 2005&amp;#8221;计划来告诉中国正在或者意欲实施产品管理的企业以及期望或者正在从事这项工作的个人，无论是对于国外企业还是国内企业，产品管理的具体形式不可能一成不变，必然会受到具体时代的影响而处于一种动态的调整之中；唯一不变的只是产品管理的核心思想：让企业将有限的资源投入到最有价值的产品上去。&lt;/p&gt;&lt;p&gt;但反观国内企业，对于产品管理，一切都不是那么尽如人意，国内企业似乎对类似产品管理这样的舶来品始终有着一种莫名的纠结，而这种纠结造成的直接后果就是用浮躁的心态理解和实践着它们。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #808000"&gt;&lt;strong&gt;企业的三种心态&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;总体说来，国内企业对于产品管理有着三种在我看来很不是滋味的心态。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;跑偏的&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;凡是舶来品，在国内总是有流行的机会的。&lt;/p&gt;&lt;p&gt;现在产品管理也算是逐渐开始流行了，各个行业都有不少企业开始实施产品管理，但有不少企业却实施了很多名不副实的产品管理，例如把产品管理部门作为市场或者研发这些部门的二级部门。当然，这种结构是靠谱的，但干的活却并不靠谱。很多产品部门基本沦落为这些部门的&amp;#8220;碎催&amp;#8221;，凡是上级部门不想做、懒得做的活就交给产品管理部门来做。&lt;/p&gt;&lt;p&gt;产生这个问题的原因有以下两种。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;在实施过程中因为企业内已有体系和部门的阻碍，使产品管理的实施逐渐偏离了正确的方向。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;企业在实施产品管理之前，就把产品管理理解成这样。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;因此，我把这种情况叫做&amp;#8220;跑偏的&amp;#8221;。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;跟风的&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;说到底，企业就是由两类实务构成的：管理和业务。&lt;/p&gt;&lt;p&gt;我有一个观点：在管理上，应该具有中年人的心态；在业务上，则应该具有年轻人的心态。&lt;/p&gt;&lt;p&gt;管理像中年人，说明企业具有独立思考的能力，在应该使用什么样的管理上会做到实事求是；而在业务上，则应保持一种年轻人的激情和冲劲，不惧怕任何挑战，敢于用新的思路来尝试各类挑战。但现在很多中国的企业正好做反了，在管理上像年轻人，在业务上像中年人。&lt;/p&gt;&lt;p&gt;对于流行的管理思想，尤其是舶来品，也不管是否适合自己或者是否做过实事求是的评估，只要是媒体鼓吹的、只要是有大企业实践过的，就拿来用。结果很明显，由于这个原因失败的案例太多太多。&lt;/p&gt;&lt;p&gt;对于产品管理也是如此。很多企业连产品管理到底是什么、到底能为企业带来什么、针对产品管理企业是否需要做一些必要的调整、如果实施产品管理对企业来说会有什么风险、应该如何实做事求是地实施产品管理等等，都没有进行清晰的评估，就开始用一种大无畏的精神实施，而原因仅仅是因为区区&amp;#8220;流行&amp;#8221;二字。对于此，我只能说八个字：精神可嘉，效果不好。&lt;/p&gt;&lt;p&gt;如果能把这种精神对调一下，那该多好！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;救命的&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;企业对于其他管理思想是否是这样的态度，我不知道，但我知道有一些企业就是用这种心态来看待和实施产品管理的。&lt;/p&gt;&lt;p&gt;产品管理不是灵丹妙药，无论得什么病吃了都会好；产品管理也不是万能胶，贴到哪里都起效。产品管理有其自身的特点和适用性，总结了一下，产品管理事实上在八个方面会给企业带来必要和显著的价值提升。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;企业长期利益和短期利益的更好结合。&lt;/li&gt;&lt;li&gt;产品、产品线、产品组合之间的关系更加紧密和协调。&lt;/li&gt;&lt;li&gt;更为明确的产品负责制并贯穿始终。&lt;/li&gt;&lt;li&gt;团队业务效率明显提升。&lt;/li&gt;&lt;li&gt;企业内部隐性成本明显降低。&lt;/li&gt;&lt;li&gt;用户满意度明显提升。&lt;/li&gt;&lt;li&gt;产品方向更加明确，目标用户更加清晰。&lt;/li&gt;&lt;li&gt;产品周期管理更合理、更顺畅。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;现在，从国家到企业都在提产业升级、产业转型，这是从宏观上为产品管理的进一步发展奠定了基础，但对于企业来说，第一步并不是考虑怎样去实施，而是实事求是地评估自己是否真的适合实施产品管理。如果适合，应该采用怎样的构架形式。&lt;br /&gt;在国内，有很多企业具备了实施产品管理的条件。因此，是否实施产品管理不是我们重点探讨的问题，我们更希望探讨的是什么时候实施产品管理。&lt;/p&gt;&lt;p&gt;必须承认，实施产品管理是企业应对更加复杂的市场环境的必然之路，因为中国的市场化会越来越强，而产品管理就是一种完全市场化的产物。&lt;/p&gt;&lt;p&gt;但我们还必须看到，在有些企业适合实施产品管理的同时，也有很多企业并不适合。因此，千万不要把产品管理当成是救命稻草。尤其是对于那些有问题、但并不适合实施产品管理的企业来说更是如此。&lt;/p&gt;&lt;p&gt;我的建议是要把产品管理当成发动机，在企业具备升级转型的基础上让产品管理推进一步。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #808000"&gt;&lt;strong&gt;产品经理需注意的三个问题&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;如果说企业的问题是平台和环境的问题，是会影响产品管理实施效果的因素，那么个人的问题就是素养和技能的问题，是会影响产品管理的价值实现的因素。同样，个人在产品管理的操作层面，也有三类需要引起从业者注意的问题。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;知道做什么，但不知道怎样做&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这类产品经理有三个特点。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;对行业和产品有深刻的认识，能够抓住本质和关键点。&lt;/li&gt;&lt;li&gt;能够提出有市场价值的产品想法。&lt;/li&gt;&lt;li&gt;缺乏系统、规范的操作能力和产品管理工作思路。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;这种产品经理就是典型的&amp;#8220;理论强，实战弱&amp;#8221;，他们能够很好地理解高层的意思，但实际情况是产品经理不仅是一个会&amp;#8220;想&amp;#8221;的角色，还得是一个会&amp;#8220;做&amp;#8221;的角色，许多关键的业务必须靠自己亲力亲为才可以。&lt;/p&gt;&lt;p&gt;我们都熟悉一句话&amp;#8220;产品经理是没有权力的小CEO&amp;#8221;。从这句话可以看出，本质区别可能就在这里：CEO只需要会想就可以了，而产品经理不但得会想，还得会做，等什么时候不用做了，那就成为真的CEO了。不过在成为真的CEO之前，还是需要先把该做的做好才行。&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;不知道做什么，知道怎样做&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这类产品经理有下面两个特点。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;缺乏主动思考的意识和能力，通常只是被动地做一些执行的工作。&lt;/li&gt;&lt;li&gt;执行能力很强，能够运用各类工具方法模型。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;这类产品经理和第一类正好相反，会做不会想。做个类比，这类产品经理可以成为军队里攻城拔寨、奋勇杀敌的将军，但却很难成为运筹帷幄、统观大局的元帅。他们只会执行拿下山头的命令，但做不到因地制宜地考虑怎样去用最合适的方案拿下这个山头。&lt;/p&gt;&lt;p&gt;之所以诞生产品管理，有一个很重要的原因就是因为企业内的产品太多了，作为高层已经无暇顾及所有的产品。尤其是在市场越来越复杂的情况下，设立产品经理，对于高层而言，作用就在于能够扮演高层智囊的角色，替高层分担这些产品所带来的压力，并提出产品发展的长期合理的建议。&lt;/p&gt;&lt;p&gt;但这种类型的产品经理怎样能够很好地做到这一点呢？&lt;/p&gt;&lt;p&gt;因此，我们看到的情况是，虽然有了产品管理、设立了产品经理，但高层依然很累，依然在许多事情上得亲历亲为。有些企业高层甚至感慨道：&amp;#8220;说真的，在没这些产品经理之前，我都没这么累过。&amp;#8221;&lt;/p&gt;&lt;p&gt;这是产品管理的问题吗？自然不是，很大程度上是产品经理的问题，也就是不知道做什么。产品经理本来应该是高层的克隆，但克隆没成功，只有四肢，没有大脑。&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;不知道做什么，不知道怎样做&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;既然两个&amp;#8220;不知道&amp;#8221;都占了，这种类型的产品经理也就不必多解释了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #808000"&gt;&lt;strong&gt;在探索中前行&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;不过倒也不必为这些太过失落，因为对于一个进入中国才十来年、快速发展不超过六年的管理思想而言，出现这样的问题也在意料之中，我们唯一要做的就是对这些问题进行分析并找到合适的解决方法。&lt;/p&gt;&lt;p&gt;产品管理对于中国企业来说，既老又新，说它老，是因为它的诞生要比现在流行的很多管理思想要早得多；说它新，是因为不但在国内，即使是在世界范围内引起高度关注也是从20世纪80年代末~90年代初才开始的，尤其对于中国企业来说，更是如此。&lt;/p&gt;&lt;p&gt;或者可以这样说，在这个管理思想的认识和实践上，我们并没有被国外同行落下太多，我们现在需要做的就是思考如何才能把本来不大的差距继续缩小，直到因地制宜、因时制宜地让产品管理思想本土化、体系化和职业化。&lt;/p&gt;&lt;p&gt;再回到开篇宝洁的案例上，虽然我无意赞美宝洁的伟大，但在最后，我还是不由地要为宝洁审时度势的改造大声叫好，这或许应该成为中国企业实施产品管理的一个标杆。当然，这个标杆不是建立在&amp;#8220;Organization 2005&amp;#8221;这个重组计划上，而是建立在宝洁为追求产品管理最合适的实现形式上的不断探索和实践的勇气和耐心中。&lt;/p&gt;&lt;p&gt;中国的产品管理，其实才刚刚上路，我们依然需要在探索中前行。&lt;/p&gt;&lt;p&gt;这一切才刚刚开始！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #999999"&gt;&lt;strong&gt;作者马博，UCPM（中国产品经理联盟）发起人之一。现主要从事产品管理的研究与实践。曾经涉足重工、广告、会展、互联网、教育等多行业领域。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #999999"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.programmer.com.cn/8672/" target="_blank"&gt;&lt;strong&gt;&lt;font color="#0088cc"&gt;本文选自《程序员》杂志2011年11期，更多精彩内容敬请关注11期杂志&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/beniao/aggbug/2246927.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2011/11/13/2246927.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/beniao/archive/2011/11/09/2238330.html</id><title type="text">Bing Maps WPF Control</title><summary type="text">去年鄙人写了一系列关于Bing Maps开发的博文，深受网友的喜欢，很久没写关于Bing Maps的博文了，最近关注了Bing Maps WPF Control，于此将本人个人对Bing Maps WPF Control的应用经验同网友们分享，同时欢迎大家丢转。</summary><published>2011-11-09T05:45:00Z</published><updated>2011-11-09T05:45:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2011/11/09/2238330.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2011/11/09/2238330.html"/><content type="html">&lt;div&gt;&lt;span style="white-space: pre" class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 去年鄙人写了一系列关于Bing Maps开发的博文，深受网友的喜欢，很久没写关于Bing Maps的博文了，最近关注了Bing Maps WPF Control，于此将本人个人对Bing Maps WPF Control的应用经验同网友们分享，同时欢迎大家丢转。&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;一、下载Bing Maps WPF Control&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="white-space: pre" class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 基于WPF的Bing Maps开发和Silverlight的开发基本一致，不同的是WPF Control还是bate版本，功能上尚未Bing Maps Silverlight Control那么完善，关于Bing Maps Silverlight Control&amp;nbsp;开发这里就不多谈，有兴趣的请查阅：&lt;font class="Apple-style-span" color="#4b4b4b" size="2" face="Verdana, Geneva, Arial, Helvetica, sans-serif"&gt;&lt;span style="line-height: 19px" class="Apple-style-span"&gt;&lt;strong&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2010/01/13/1646446.html"&gt;[Silverlight]Bing Maps系列文章汇总&lt;/a&gt;&lt;/strong&gt;。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="white-space: pre" class="Apple-tab-span"&gt;&lt;/span&gt;Bing Maps WPF Control下载地址：&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27165"&gt;http://www.microsoft.com/download/en/details.aspx?id=27165&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;二、 应用Bing Maps WPF Control&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="white-space: pre" class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bing Maps WPF Control的应用和Bing Maps Silverlight Control基本一致，只需要在WPF中将Map空间所在的名称空间添加引用就可以直接使用Map控件以呈现出地图效果了。&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 19px; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF"&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Window&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;x:Class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="BingMapWPF.MainWindow"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:x&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:m&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="MainWindow"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="350"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="525"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;m:Map&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;x:Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="map"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;CredentialsProvider&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=""&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;m:MapLayer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;x:Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="mapLayer"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;m:Map&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="line-height: 19px; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Window&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style="white-space: pre" class="Apple-tab-span"&gt; &lt;/span&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/wpf_bingmap_01.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;三、&amp;nbsp;Bing Maps WPF Control图元渲染&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="white-space: pre" class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="display: inline-block"&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bing Maps Silverlight Control中对于大数量的图元渲染性能非常低下，这里对Bing Maps WPF Control做了个简单的测试，随便从数据库中提取了5000个地名点在地图中渲染出来，性能上还是存在很大的问题，不过这里只是直接渲染并没有做任何的优化处理，对于渲染性能这块还是有很大的优化空间，理论上性能要比Bing Maps Silverlight Control高。&lt;span style="white-space: pre" class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="white-space: pre" class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span style="white-space: pre" class="Apple-tab-span"&gt;&lt;/span&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/wpf_bingmap_02.jpg" /&gt;&lt;span style="white-space: pre" class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="white-space: pre" class="Apple-tab-span"&gt;&lt;/span&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/wpf_bingmap_03.jpg" width="761" height="498" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 本片就简单介绍到这里，如对Bing Maps开发感兴趣，不妨移步看看《&lt;a id="ctl03_TitleUrl" class="postTitle2" href="http://www.cnblogs.com/beniao/archive/2010/01/13/1646446.html"&gt;&lt;font color="#1a8bc8"&gt;&lt;span style="font-size: 10pt"&gt;【Silverlight】Bing Maps系列文章汇总&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;span style="font-size: 10pt"&gt;》。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;fieldset&gt;&lt;legend&gt;相关说明&lt;/legend&gt;&lt;p&gt;&amp;nbsp;本文属学习笔记文章，愿与有志者共同学习交流。欢迎转载，为了保存作者的创作热情，但请在明显地位标记本文的原文连接。&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;作&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;者：Beniao&lt;/p&gt;&lt;p&gt;文章出处：&lt;a href="http://beniao.cnblogs.com/"&gt;http://beniao.cnblogs.com/&lt;/a&gt;&amp;nbsp; 或&amp;nbsp; &lt;a href="http://www.cnblogs.com/"&gt;http://www.cnblogs.com/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/fieldset&gt;&lt;p&gt; &lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/CNTAC.jpg" width="640" height="99" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/beniao/aggbug/2238330.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2011/11/09/2238330.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/beniao/archive/2011/08/30/1997372.html</id><title type="text">SQL Server 2008空间数据应用系列十二：Bing Maps中呈现GeoRSS订阅的空间数据</title><summary type="text">GeoRSS 是在 RSS 订阅源中包含地理空间数据时所用的一个标准，它定义了一种名为 GeoRSS GML 的特定格式，用来在订阅源中包含 GML 格式的数据。客户端应用程序可以订阅 GeoRSS 订阅源，订阅方式与订阅常规 RSS 订阅源相同。可以轻松地将 GeoRSS 格式的数据导入Microsoft Bing Maps、Google Maps中，同样也可以将空间数据库中的空间数据发布为GeoRss订阅后快速的在GIS中呈现，本篇将介绍如何基于微软Bing Maps for Silverlight中呈现GeoRss订阅的空间数据。</summary><published>2011-08-30T14:14:00Z</published><updated>2011-08-30T14:14:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2011/08/30/1997372.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2011/08/30/1997372.html"/><content type="html">&lt;p&gt;&lt;strong&gt;友情提示，您阅读本篇博文的先决条件如下：&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;1、本文示例基于Microsoft SQL Server 2008 R2调测。&lt;/p&gt;&lt;p&gt;2、具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验。&lt;/p&gt;&lt;p&gt;3、熟悉或了解Microsoft SQL Server 2008中的空间数据类型。&lt;/p&gt;&lt;p&gt;4、具备相应（比如OGC规范、KML规范）的GIS专业理论知识。&lt;/p&gt;&lt;p&gt;5、GeoRss订阅技术以及其他相关知识。&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;hr style="color: #ff0000" /&gt;&lt;p&gt;GeoRSS是一种描述和查明互联网内容所在物理位置的方法。通过使用GeoRSS，搜索Web站点或者与地理位置有关的项目就成为可能。GeoRSS利用地理标识语言(GML)，即利用可扩展标记语言 (Extensible Markup Language, XML)存储和传输地理数据的方法。原始的GML模型以由World Wide Web联盟(W3C)所开发的资源描述框架(RDF)为基础。GML保持着RDF的许多特性，包括智能代理和一个用于描述和查询数据的标准语法。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;GeoRSS 是在 RSS 订阅源中包含地理空间数据时所用的一个标准，它定义了一种名为 GeoRSS GML 的特定格式，用来在订阅源中包含 GML 格式的数据。客户端应用程序可以订阅 GeoRSS 订阅源，订阅方式与订阅常规 RSS 订阅源相同。可以轻松地将 GeoRSS 格式的数据导入Microsoft Bing Maps、Google Maps中，同样也可以将空间数据库中的空间数据发布为GeoRss订阅后快速的在GIS中呈现，本篇将介绍如何基于微软Bing Maps for Silverlight中呈现GeoRss订阅的空间数据。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;一、发布空间数据到GeoRss&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;前一篇文章《&lt;a id="ctl03_TitleUrl" class="postTitle2" href="http://www.cnblogs.com/beniao/archive/2011/03/27/1995939.html"&gt;&lt;font color="#1a8bc8"&gt;&lt;span style="font-size: 10pt"&gt;SQL Server 2008空间数据应用系列十：使用存储过程生成GeoRSS聚合空间信息&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;span style="font-size: 10pt"&gt;》介绍了如何将空间数据通过存储过程+HTTP请求接口发布为GeoRss的具体实现，这里就一笔带过，详细请查阅上篇博文。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt"&gt;&lt;strong&gt;二、创建GeoRss阅读器&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt"&gt;创建GeoRss阅读器的目的是为了动态的请求GeoRss地址，将GeoRss数据解析为自己想要的数据结构，如下便是根据自己的需求结合GeoRss定义的一种数据结构样例。&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Microsoft.Maps.MapControl;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GeoRss.Map.GeoRssUtils&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GeoRssItem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Title&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Description&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Link&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;PubData&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LocationCollection&amp;nbsp;Locatios&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/span&gt;核心原理就是使用WebClient动态的发起http请求，将返回的GeoRss数据通过Linq To XML的方式解析为对象结构的数据。其实现非常简单，不做具体分析，详细代码如下所示：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Net;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Xml.Linq;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Linq;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Windows;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Microsoft.Maps.MapControl;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GeoRss.Map.GeoRssUtils&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;delegate&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DownloadGeoRssCompletedEventHandler(List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;GeoRssItem&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;items);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;delegate&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DownloadGeoRssExceptionEventHandler(Exception&amp;nbsp;e);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GeoRssReader&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GeoRssReader()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wc&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;WebClient();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wc.DownloadStringCompleted&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;WebClientDownloadGeoRssCompleted;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GeoRssReader(Uri&amp;nbsp;uri)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.uri&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;uri;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GeoRssReader(Uri&amp;nbsp;uri,&amp;nbsp;DownloadGeoRssCompletedEventHandler&amp;nbsp;evh)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;(uri)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadGeoRssCompleted&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;evh;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Uri&amp;nbsp;uri&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;event&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DownloadGeoRssCompletedEventHandler&amp;nbsp;DownloadGeoRssCompleted;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;event&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DownloadGeoRssExceptionEventHandler&amp;nbsp;DownloadGeoRssException;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ReadAsync()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(DownloadGeoRssCompleted.Target&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;!=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wc.DownloadStringAsync(uri);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;#region&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;_private&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;WebClient&amp;nbsp;wc;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;WebClientDownloadGeoRssCompleted(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;sender,&amp;nbsp;DownloadStringCompletedEventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XNamespace&amp;nbsp;nsXml&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;http://www.w3.org/2005/Atom&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XNamespace&amp;nbsp;nsGeorss&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;http://www.georss.org/georss&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XNamespace&amp;nbsp;nsGeo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;http://www.w3.org/2003/01/geo/wgs84_pos#&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XNamespace&amp;nbsp;nsMedia&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;http://search.yahoo.com/mrss/&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;items&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;from&amp;nbsp;item&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;XElement.Parse(e.Result).Descendants(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GeoRssItem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Title&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(item.Element(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;!=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;item.Element(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Link&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(item.Element(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;link&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;!=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;item.Element(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;link&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Description&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(item.Element(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;description&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;!=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;item.Element(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;description&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PubData&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(item.Element(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;pubDate&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;!=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;item.Element(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;pubDate&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Locatios&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ParserLocations(XElement.Parse(item.LastNode.ToString().Replace(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;:&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;X&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)).Value)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(DownloadGeoRssCompleted.Method&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;!=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadGeoRssCompleted.Invoke(items.ToList());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Exception&amp;nbsp;ex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(DownloadGeoRssException.Method&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;!=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadGeoRssException.Invoke(ex);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;throw&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LocationCollection&amp;nbsp;ParserLocations(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;points)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LocationCollection&amp;nbsp;lc&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LocationCollection();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;[]&amp;nbsp;ps&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;points.Split(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ps.Length;&amp;nbsp;i&lt;/span&gt;&lt;span style="color: #000000"&gt;+=&lt;/span&gt;&lt;span style="color: #800080"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lc.Add(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Location(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;double&lt;/span&gt;&lt;span style="color: #000000"&gt;.Parse(ps[i]),&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;double&lt;/span&gt;&lt;span style="color: #000000"&gt;.Parse(ps[i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;])));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;lc;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;#endregion&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt"&gt;&lt;strong&gt;三、基于SLBM呈现GeoRss数据&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt"&gt;引入Bing Maps Silverlight Control的控件库，定义一个专门的MapLayer图层来呈现GeoRss数据，其Silverlight前台的代码如下。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Grid&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;x:Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="LayoutRoot"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;Background&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="White"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;map:Map&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;x:Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="map"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="0,0,0,0"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;CredentialsProvider&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&lt;/span&gt;&lt;span style="color: #808000"&gt;{StaticResource&amp;nbsp;MyCredentials}&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ScaleVisibility&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Visible"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CopyrightVisibility&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Collapsed"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;map:MapLayer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="mlayer"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;map:MapLayer&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;map:Map&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;应用程序加载的过程中使用上面所开发完成的GeoRss阅读器进行数据读取并解析，随后将结果呈现在Bing Maps Silverlight Control的应用中。代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;MainPage()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;url&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;http://localhost:32484/SHBuildingGeoHandler.ashx&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GeoRssReader&amp;nbsp;reader&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GeoRssReader(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Uri(url,&amp;nbsp;UriKind.RelativeOrAbsolute));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader.DownloadGeoRssCompleted&lt;/span&gt;&lt;span style="color: #000000"&gt;+=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DownloadGeoRssCompletedEventHandler(reader_DownloadGeoRssCompleted);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader.ReadAsync();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;reader_DownloadGeoRssCompleted(List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;GeoRssItem&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;items)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;System.Diagnostics.Debug.WriteLine(items.Count);&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(var&amp;nbsp;item&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;items)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MapPolygon&amp;nbsp;mp&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;MapPolygon();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mp.Locations&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;item.Locatios;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mp.Fill&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SolidColorBrush(Colors.Red);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.mlayer.Children.Add(mp);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/GeoRssBingMaps.jpg" width="644" height="430" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;四、相关资料&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[1]、数据表中使用空间数据类型：&lt;a href="http://www.cnblogs.com/beniao/archive/2011/02/21/1959347.html"&gt;&lt;font color="#1a8bc8"&gt;http://www.cnblogs.com/beniao/archive/2011/02/21/1959347.html&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[2]、几何实例上的OGC方法：&lt;a href="http://msdn.microsoft.com/zh-cn/visualc/bb933960.aspx"&gt;&lt;font color="#1a8bc8"&gt;http://msdn.microsoft.com/zh-cn/visualc/bb933960.aspx&lt;/font&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;[3]、几何图形实例上的扩展方法：&lt;a href="http://msdn.microsoft.com/zh-cn/library/bb933880.aspx"&gt;&lt;font color="#1a8bc8"&gt;http://msdn.microsoft.com/zh-cn/library/bb933880.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[4]、OGC 静态几何图形方法：&lt;a href="http://msdn.microsoft.com/zh-cn/library/bb933894.aspx"&gt;&lt;font color="#1a8bc8"&gt;http://msdn.microsoft.com/zh-cn/library/bb933894.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[5]、Bing Maps开发系列博文：&lt;a href="http://www.cnblogs.com/beniao/archive/2010/01/13/1646446.html"&gt;&lt;font color="#1a8bc8"&gt;http://www.cnblogs.com/beniao/archive/2010/01/13/1646446.html&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://files.cnblogs.com/beniao/Maps/GeoRss.rar"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/SLAnimation/DC.gif" width="169" height="37" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;fieldset style="font-family: Arial; color: #003333"&gt;&lt;p&gt;&lt;legend&gt;版权说明&lt;/legend&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; 本文属原创文章，欢迎转载且注明文章出处，其版权归作者和博客园共有。为了保存作者的创作热情，请在转载后的明显位置标记本文出处。&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp; 作&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;者：Beniao&lt;/p&gt;&lt;p&gt;&amp;nbsp;文章出处：&lt;a href="http://beniao.cnblogs.com/" target="_blank"&gt;http://beniao.cnblogs.com/&lt;/a&gt;&amp;nbsp; 或&amp;nbsp; &lt;a href="http://www.cnblogs.com/" target="_blank"&gt;http://www.cnblogs.com/&lt;/a&gt; &lt;/p&gt;&lt;/fieldset&gt;&lt;p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/beniao/aggbug/1997372.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2011/08/30/1997372.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/beniao/archive/2011/08/12/2136575.html</id><title type="text">SQL Server 2008空间数据应用系列十一：提取MapInfo地图数据中的空间数据解决方案</title><summary type="text">如果产品要实现在Silverlight开发的Map应用中将省份、地市和区县标记出来的功能，通过分析只能获取到省份、地市和区县的空间数据，然后在Map应用中动态绘制图层叠加在Map的图层上。自己绘制图层叠加最关键的一点就是要获取到省份、地市和区县的空间数据，从已有的地图数据中导出这份数据乃明智之举。本篇结合笔者的经历，介绍一种快速提取MapInfo地图数据文件中的空间数据的方案，供大家参考。</summary><published>2011-08-12T11:20:00Z</published><updated>2011-08-12T11:20:00Z</updated><author><name>Bēniaǒ</name><uri>http://www.cnblogs.com/beniao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/beniao/archive/2011/08/12/2136575.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/beniao/archive/2011/08/12/2136575.html"/><content type="html">&lt;strong&gt;友情提示，您阅读本篇博文的先决条件如下：&lt;/strong&gt; &lt;p&gt;1、本文示例基于Microsoft SQL Server 2008 R2调测。&lt;/p&gt;&lt;p&gt;2、具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验。&lt;/p&gt;&lt;p&gt;3、熟悉或了解Microsoft SQL Server 2008中的空间数据类型。&lt;/p&gt;&lt;p&gt;4、具备相应（比如OGC规范、KML规范）的GIS专业理论知识。&lt;/p&gt;&lt;p&gt;5、了解MapInfo地图数据、ArcGIS Shp地图数据格式。&lt;/p&gt;&lt;p&gt;6、了解&lt;a href="http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx"&gt;&lt;font color="#1a8bc8"&gt;SQL空间工具（SqlSpatialTools）&lt;/font&gt;&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;hr style="color: #ff0000" /&gt;&lt;p&gt;&lt;strong&gt;首先分析个案例：&lt;/strong&gt;如果产品要实现在Silverlight开发的Map应用中将省份、地市和区县标记出来的功能，通过分析只能获取到省份、地市和区县的空间数据，然后在Map应用中动态绘制图层叠加在Map的图层上。自己绘制图层叠加最关键的一点就是要获取到省份、地市和区县的空间数据，从已有的地图数据中导出这份数据乃明智之举。本篇结合笔者的经历，介绍一种快速提取MapInfo地图数据文件中的空间数据的方案，供大家参考。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/SpaitalData/HB.jpg" width="953" height="416" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;一、准备环境&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;1、安装MapInfo Professional 8.0/8.5，本文基于MapInfo Professional 8.0软件平台。&lt;/p&gt;&lt;p&gt;2、下载&lt;a href="http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx"&gt;&lt;font color="#1a8bc8"&gt;SQL空间工具（SqlSpatialTools）&lt;/font&gt;&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;3、安装Microsoft SQL Server 2008 R2。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;二、使用MapInfo Professional转换地图数据格式&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;MapInfo Professional提供了地图数据格式转换工具，通过菜单&amp;#8220;tools-&amp;gt;universal Tanslator-&amp;gt;universal Tanslator&amp;#8221;&amp;nbsp;便可打开地图格式转换面板，如下图：&lt;/p&gt;&lt;p&gt;　&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/SpaitalData/HB_Area_Convert.jpg" width="623" height="510" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;通过以上步骤转换.tab的地图数据为.shp格式的地图数据，同时得到的文件有.shp、.shx、.dbf和.prj四种扩展名的文件，具体有什么作用这里就不介绍了，主要使用的是.shp，其他文件都是辅助的数据文件。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;三、导入Shpfile地图空间数据到SQL Server 2008&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;　&lt;/strong&gt;　这里不做详细介绍，不清楚如何导入数据的请移步《&lt;a id="ctl03_TitleUrl" href="http://www.cnblogs.com/beniao/archive/2011/03/22/1989310.html"&gt;使用空间工具(Spatial Tools)导入ESRI格式地图数据&lt;/a&gt;》。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;四、SQL Server Management Studio中预览空间数据&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;SQL Server Management Studio 支持两种方式查看空间数据，既表记录方式和空间结果方式，下图为两种方式的截图。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/SpaitalData/HB_Area_Display.jpg" width="992" height="374" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;五、通过空间查询到处空间查询结果&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在SSMS中通过查询空间数据表，使用SQL内置函数可以将空间数据转换为图形坐标点集合。如下图：&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/beniao/SpaitalData/HB_Area_Geom.jpg" width="590" height="370" /&gt;&lt;/p&gt;&lt;p&gt;上面的操作提取出了坐标点集合，可以直接将查询结果另存为txt文件，直接就可以复制使用里面的地理坐标数据了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;六、相关资料&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[1]、&lt;a id="ctl03_TitleUrl" class="postTitle2" href="http://www.cnblogs.com/beniao/archive/2011/03/22/1989310.html"&gt;SQL Server 2008空间数据应用系列九：使用空间工具(Spatial Tools)导入ESRI格式地图数据&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a&gt;[2]、空间工具（Spatial Tools）： &lt;/a&gt;&lt;a href="http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx"&gt;&lt;font color="#1a8bc8"&gt;http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx&lt;/font&gt;&lt;/a&gt;&lt;a&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;fieldset style="font-family: Arial; color: #003333"&gt;&lt;p&gt;&lt;legend&gt;版权说明&lt;/legend&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; 本文属原创文章，欢迎转载且注明文章出处，其版权归作者和博客园共有。为了保存作者的创作热情，请在转载后的明显位置标记本文出处。&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp; 作&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;者：Beniao&lt;/p&gt;&lt;p&gt;&amp;nbsp;文章出处：&lt;/a&gt;&lt;a href="http://beniao.cnblogs.com/" target="_blank"&gt;http://beniao.cnblogs.com/&lt;/a&gt;&lt;a&gt;&amp;nbsp; 或&amp;nbsp; &lt;/a&gt;&lt;a href="http://www.cnblogs.com/" target="_blank"&gt;http://www.cnblogs.com/&lt;/a&gt;&lt;a&gt; &lt;/p&gt;&lt;/fieldset&gt;&lt;p&gt; &lt;/p&gt;&lt;/a&gt; &lt;img src="http://www.cnblogs.com/beniao/aggbug/2136575.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/beniao/archive/2011/08/12/2136575.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
