<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_跟随耶稣写代码</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/15425/rss</id><updated>2010-07-08T08:58:21Z</updated><author><name>yangjingbo</name><uri>http://www.cnblogs.com/ekinyang/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ekinyang/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/15425/rss"/><entry><id>http://www.cnblogs.com/ekinyang/archive/2010/07/08/1773475.html</id><title type="text">使用.NET4.0 编写简单的应用程序获知地理位置</title><summary type="text">.NET 4.0 中对于位置传感器提供了GeoCoordinateWatcher类。通过这个类能方便的访问传感器信息。刚才小写了一段代码，来演示将得到的地理位置显示在google map上面。首先来看看应用程序的界面： 代码如下：注意事项：1. 该应用程序使用VS2010编写，并且使用.NET Framework 4.0，而且要在工程中引用 System.Device2. 确保你的操作系统是Win...</summary><published>2010-07-08T04:09:00Z</published><updated>2010-07-08T04:09:00Z</updated><author><name>yangjingbo</name><uri>http://www.cnblogs.com/ekinyang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ekinyang/archive/2010/07/08/1773475.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ekinyang/archive/2010/07/08/1773475.html"/><content type="html">&lt;p&gt;.NET 4.0 中对于位置传感器提供了GeoCoordinateWatcher类。通过这个类能方便的访问传感器信息。刚才小写了一段代码，来演示将得到的地理位置显示在google map上面。首先来看看应用程序的界面：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0_4F4C/image_2.png"&gt;&lt;img height="331" width="480" src="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0_4F4C/image_thumb.png" alt="image" border="0" title="image" style="display: inline; border-width: 0px;" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;代码如下：&lt;/p&gt;&#xD;
&lt;pre &gt;public partial class Form1 : Form&#xD;
{&#xD;
    private GeoCoordinateWatcher _GeoCoordinateWatcher;&#xD;
    public Form1()&#xD;
    {&#xD;
        InitializeComponent();&#xD;
        _GeoCoordinateWatcher = new GeoCoordinateWatcher();&#xD;
    } &#xD;
&#xD;
    private void Form1_Load(object sender, EventArgs e)&#xD;
    {&#xD;
        _GeoCoordinateWatcher.PositionChanged += new EventHandler&amp;lt;GeoPositionChangedEventArgs&amp;lt;GeoCoordinate&amp;gt;&amp;gt;(_GeoCoordinateWatcher_PositionChanged);&#xD;
        _GeoCoordinateWatcher.Start();&#xD;
    } &#xD;
&#xD;
    void _GeoCoordinateWatcher_PositionChanged(object sender, GeoPositionChangedEventArgs&amp;lt;GeoCoordinate&amp;gt; e)&#xD;
    {&#xD;
        if (!e.Position.Location.IsUnknown)&#xD;
        {&#xD;
            this.webBrowser1.Navigate(string.Format(CultureInfo.InvariantCulture, "{0}{1},{2}", new object[] { "http://maps.google.com/?ie=UTF8&amp;amp;z=15&amp;amp;q=", e.Position.Location.Latitude, e.Position.Location.Longitude }));&#xD;
        }&#xD;
    }&#xD;
} &#xD;
&#xD;
&lt;/pre&gt;&#xD;
&lt;p&gt;注意事项：&lt;/p&gt;&#xD;
&lt;p&gt;1. 该应用程序使用VS2010编写，并且使用.NET Framework 4.0，而且要在工程中引用 System.Device&lt;/p&gt;&#xD;
&lt;p&gt;2. 确保你的操作系统是Windows 7.&lt;/p&gt;&#xD;
&lt;p&gt;3. 确保你已经成功的安装上了相关的传感器软件。推荐使用：&lt;a href="http://geosenseforwindows.com/"&gt;geosenseforwindows&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4. 一定要选中在控制面板中的传感器复选框。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;OK。就写到这里，有兴趣的自己试试吧。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ekinyang/aggbug/1773475.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ekinyang/archive/2010/07/08/1773475.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ekinyang/archive/2010/07/08/1773465.html</id><title type="text">.NET 4.0 Location : 查看传感器状态变化</title><summary type="text">.NET 4.0 中关于访问传感器状态进行了封装。在.NET4.0 beta2中我们可以用GeoLocationProvider。但是现在我们可以方便的使用GeoCoordinateWatcher类进行获知。较以往的GeoLocationProvider现在的GeoCoordinateWatcher结构如下： 具体代码如下：这个是运行的效果： 当我修改传感器让其不可用时： 这时应用程序能正确的捕捉...</summary><published>2010-07-08T03:56:00Z</published><updated>2010-07-08T03:56:00Z</updated><author><name>yangjingbo</name><uri>http://www.cnblogs.com/ekinyang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ekinyang/archive/2010/07/08/1773465.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ekinyang/archive/2010/07/08/1773465.html"/><content type="html">&lt;p&gt;.NET 4.0 中关于访问传感器状态进行了封装。在.NET4.0 beta2中我们可以用GeoLocationProvider。但是现在我们可以方便的使用GeoCoordinateWatcher类进行获知。较以往的GeoLocationProvider现在的GeoCoordinateWatcher结构如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0Location_30EB/image_2.png"&gt;&lt;img height="283" width="462" src="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0Location_30EB/image_thumb.png" alt="image" border="0" title="image" style="display: inline; border-width: 0px;" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;具体代码如下：&lt;/p&gt;&#xD;
&lt;pre &gt;using System;&#xD;
using System.Device.Location;&#xD;
namespace LocationStatusChange&#xD;
{&#xD;
    class Program&#xD;
    {&#xD;
        static void Main(string[] args)&#xD;
        {&#xD;
            Console.WriteLine("Outputting location updates, press any key to exit...");&#xD;
            LocationWatcher watcher = new LocationWatcher();&#xD;
            Console.ReadKey();&#xD;
        } &#xD;
&#xD;
    }&#xD;
    class LocationWatcher&#xD;
    {&#xD;
        private GeoCoordinateWatcher provider; &#xD;
&#xD;
        public LocationWatcher()&#xD;
        {&#xD;
            this.provider = new GeoCoordinateWatcher();&#xD;
            this.provider.StatusChanged += new EventHandler&amp;lt;GeoPositionStatusChangedEventArgs&amp;gt;(provider_StatusChanged);&#xD;
            this.provider.Start();&#xD;
        } &#xD;
&#xD;
        void provider_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)&#xD;
        {&#xD;
            Console.WriteLine("LocationStatus: " + e.Status.ToString());&#xD;
        }&#xD;
    }&#xD;
} &#xD;
&#xD;
&lt;/pre&gt;&#xD;
&lt;p&gt;这个是运行的效果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0Location_30EB/image_4.png"&gt;&lt;img height="126" width="441" src="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0Location_30EB/image_thumb_1.png" alt="image" border="0" title="image" style="display: inline; border-width: 0px;" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;当我修改传感器让其不可用时：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0Location_30EB/image_6.png"&gt;&lt;img height="144" width="485" src="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0Location_30EB/image_thumb_2.png" alt="image" border="0" title="image" style="display: inline; border-width: 0px;" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;这时应用程序能正确的捕捉到状态：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0Location_30EB/image_8.png"&gt;&lt;img height="128" width="470" src="http://images.cnblogs.com/cnblogs_com/ekinyang/WindowsLiveWriter/NET4.0Location_30EB/image_thumb_3.png" alt="image" border="0" title="image" style="display: inline; border-width: 0px;" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;呵呵.NET4.0 真的很强大。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ekinyang/aggbug/1773465.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ekinyang/archive/2010/07/08/1773465.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
