说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Windows Phone 7 实现简单的GPS定位器

HTML文档下载 WORD文档下载 PDF文档下载
GPS系统变得很受欢迎,许多人的手机都需要它,尤其是游客。但是许多开发商不知道如何开始做GPS系统。这是一个Windows Phone 7中的GPS系统的例子,展示了如何通过手机内置的定位得到你的位置。然后在Bing地图上显示位置(就像谷歌地图)。

 

作者:Ahmedn1

翻译:okbase.net winphone

 

源代码下载

 

介绍

GPS系统变得很受欢迎,许多人的手机都需要它,尤其是游客。但是许多开发商不知道如何开始做GPS系统。

这是一个Windows Phone 7中的GPS系统的例子,展示了如何通过手机内置的定位得到你的位置。

然后在Bing地图上显示位置(就像谷歌地图)。

背景

要使用Bing地图,你需要一个Bing Key用于开发时使用。这是一个您的应用程序的唯一键,用它可以登录到Bing地图。

 

你可以注册Windows Live账号时从Bing Maps Portal(https://www.bingmapsportal.com/)得到key。

拿到key后,你可以将它附加到您的应用程序,并得到你想要的地图。之后,我们可以使用一个重要的服务:Terra服务,它可以以文本形式提供经纬度位置。您可以在项目名称上右键点击,选择“添加服务引用”对于Terra服务,你可以使用这个网址:http://msrmaps.com/TerraService2.asmx,然后你可以根据导入时候所命名的名字引用该命名空间。

官方网站:http://msrmaps.com

 

Terra服务包含了许多重要的用于GPS的方法,例如:

 

  • ConvertLonLatPtToNearestPlace
  • ConvertLonLatPtToUtmPt
  • ConvertPlaceToLonLatPt
  • ConvertUtmPtToLonLatPt
  • CountPlacesInRect
  • GetAreaFromPt
  • GetAreaFromRect
  • GetAreaFromTileId
  • GetLatLonMetrics
  • GetPlaceFacts
  • GetPlaceList
  • GetPlaceListInRect
  • GetTheme
  • GetTile
  • GetTileMetaFromLonLatPt
  • GetTileMetaFromTileId
  •  

     

    我们感兴趣的是:ConvertLonLatPtToNearestPlace,从坐标得到地名。反过来的方法是:

     

    ConvertPlaceToLonLatPt

     

    使用代码

     

    首先,我们设定地图部分的XAML代码

     

     

     

    <my:Map Height="457" Name="mapBing" Width="450" CredentialsProvider="Your Key"/>
    然后要让你的地图工作,你会发现,它会开始工作,甚至在设计视图之前,部署和运行。代码如下:
    Terra.TerraServiceSoapClient client = new Terra.TerraServiceSoapClient();
    这一部分是从下载的服务里创建一个对象:
    public MainPage()        {            InitializeComponent();            client.ConvertLonLatPtToNearestPlaceCompleted += |                new EventHandler<ConvertLonLatPtToNearestPlaceCompletedEventArgs>(                client_ConvertLonLatPtToNearestPlaceCompleted);            mapBing.ZoomBarVisibility = System.Windows.Visibility.Visible;        }
    在构造函数中,我们创建了ConvertLonLatPtToNearestPlaceCompleted事件的事件处理程序
    ,激发时得到最接近我们的坐标位置,然后使地图上的缩放按钮可见。
    void client_ConvertLonLatPtToNearestPlaceCompleted(object sender,     ConvertLonLatPtToNearestPlaceCompletedEventArgs e)        {            txtResult.Text = e.Result;            mapBing.Center = new GeoCoordinate(latitude, longitude);            mapBing.ZoomLevel = 10;        }
    这个是事件处理函数,它显示文本块并将新的坐标置于地图中心,并将放大倍数设为10
    现在让我们看一下按钮点击事件:
    txtResult.Text = "Loading....";GeoCoordinateWatcher myWatcher = new GeoCoordinateWatcher();var myPosition = myWatcher.Position;latitude = 30.01;longitude = 31.14;if (!myPosition.Location.IsUnknown){    latitude = myPosition.Location.Latitude;    longitude = myPosition.Location.Longitude;}client.ConvertLonLatPtToNearestPlaceAsync(new Terra.LonLatPt {     Lat = latitude, Lon = longitude });
    GeoCoordinateWatcher类是手机定位器的内置类,可以通过Position属性得到当前坐标。
    我添加了一些默认的坐标,因为在Windows Phone模拟器中没有定位装置,所以它不会得到正确的坐标。我添加了这些默认值仅用于测试。最后,我们使用Terra服务搜索此位置的名称。
    兴趣点
    在我的工作中,我添加了几个按钮来改变不同地图的模式如:航空,公路,街道,卫星,...... 等等,但我发现,这是不必要的,所以我删除了它。
    历史
    这是第一个版本,我会尽快与更先进的功能,转载时请注明出处。

     

    【多图】梦幻现实 IBM的未来超级计算机水世界 一名骨灰级工程师的OpenStack部署总结引发的讨论 解读DuckDuckGo搜索 百万点击也敢叫板Google 开发者成功学:扔掉你那些很sexy的想法 VMware严控ESXi API 引发用户和ISV被绑架担忧 布局O2O Facebook推出实物礼品卡 iSuppli:微软Surface RT实际销量远低于出货量 业界前三甲:App Store两个刷榜者,站了出来 极客无极限 一行HTML5代码引发的创意大爆炸 将服务器“弃”之荒野? 微软玩转露天数据中心 Dropbox:我们现在关注“内容” 而不仅仅是文件存储 访Teradata Aster Mayank Bawa:抛弃无效数据,让分析走向大众化 谷歌Chrome或新增通知中心 与Google Now整合 传言称HBO节目将登陆苹果Apple TV? Crashlytics被收购,应用崩溃报告服务要火了? 微软公布WP7.8完整功能 诺基亚率先升级 BlackBerry 10或许不仅仅是一剂强心针 一周消息树:专访蒋彪:JavaEE是企业级开发首选 移动周报:从封闭到开放,iOS生态系统要变天? 游戏平台上:Win7已跌破70% Ubuntu突破1% 不再那么传奇 扎克伯格时代或结束 微软应该联手Firefox OS,打造破坏性生态系统 中美IT人才俱乐部第一期:硅谷经验面面观 中国第四季度Android和iOS智能手机出货量高达98% 开发者眼中的代码审查“真相” 互联网产品设计的12个理念 Pair、Between、小恩爱:妹纸装个情侣应用吧? 横跨四大操作系统:3DMark将挑战所有智能设备 美国碰壁欧洲得意 华为获CERN青睐 应用数据分析新标准:Flurry增应用崩溃分析功能 Twitter被黑客入侵,25万用户信息可能被窃 如何在同一窗口启动Word 动态报表问题--如何动态打印一个主表和多个细表的问题?? 如何制作有身份验证的单机数据库程序? JAVA中的指针,引用及对象的clone 请教大家。为什么我用access做的数据库但是用VC创建工程时却被告之不识别的数据库格式。 50分!!!兄弟们,BCB6安装完之后还要一次注册,activation key,谁知道? 软件黑奴们,我们算是白领吗? 有关office助手 怎樣跟蹤Access數據庫的操作 关于 《DELPHI》 与 《C++》 的对比!!!!!!!!!!!!! 非技术问题,不一定经典 ASP中如何上传文件到SQL2k 怎么从crosstab中取列名? c++ primer 难!难! 难!如何得到选中文本加亮矩形区域?? 如何在北京找一个工作+学习的机会? sql7.0如何升级到sql2000并且数据不变 DBGrid顯示的范圍如何定? 请教:在VC++中编程时,为何有的文件能出现类成员提示,有的文件编辑时不出现提示,有的只出现该类的,却没有其基类的类成员提示? 一个很好拿的高分 我写了一个拨号网络记时的工具,可以设定时间自动断线,提供源码.... 怎么读取外部数据源中的某个表中的某列的数据类型? 如何注册一个DCOM,让它跑在别的机子上? 关于用Win32 API画 BMP 图片问题 !急急急急急急急急急急 !!! Delphi 6 的 lib path 丢失!! help?谁知道Tab Control 控件的用法,12分的感谢!!!! 请问:如何在一般用户环境下启动管理员程序? 我想捕获网卡收到的数据包,该怎么搞? vb中调用sql server和ORACLE数据库的问题 北京的朋友,有谁知道这东西那里有卖的?? 想在c#和java中选一个,给点意见.客观点. 如何得到在另外一个窗口中所选择的结果 dcc32如何使用? 大哥,大姐们,这到题没分给,但我真的想知道答案 求对VSS或者Team Source开发的例子 科鼎校园网V2.3测试版网上演示 关于 WINDOWPLACEMENT Structure 关于用DELPHI联接ACCESS数据库怎样使用insert命令的问题(很急很急)加分多多!!! 学c#要那些知识前提。 请问新建怎么做? 为什么在excel表中可以看到的数字,用data连接后,在text和dbgrid中却看不到。(只显示出了其中的一部分) 简单问题,关于toolbar CTime类型变量的值存到数据库中datetime类型的小问题! vc怎样打开access数据库!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !求助,我的机子不能启动了。。。 XML中华网有好多的C#资料哦! 比较问题一道,关于 == 版主请进 ~ CrystalReport的一个奇怪的问题,Help! 唉,终于解决不了了,如何在运行时,改变LISTBOX的风格。MSDN说不能解决 AnsiString与TStrings之间的区别与联系,急! 怎样打出圆圈里一个R那种符号?就是注册商标那个符号哦 ^-^ 向心加速度的单位是m/s2,那么为什么说向心加速度只改变匀速圆周运动的方向而不是速率 废塑料种类如何分 符号“R”外面加圆圈.这个符号在哪里找 向心加速度中半径必须用M来做单位么 请问废塑料怎么认?种类太多了!我是刚办的再生塑料颗粒厂,是朋友介绍进入这个行业,刚开始是做蛇皮袋,后来没有什么利润就放弃做袋子,现在改做硬塑料,可是不会选料啊,我想做出蛇皮袋子 使用哪种导热硅胶好?导热硅胶的导热系数多少合适? 向心加速度的单位向心加速度的两个公式,一个是a=V²/r,得出是(m²/s²)/m,结果是m/s²;而另外一个公式是a=W²r=(rad²/s²)m,结果是rad²m/s平方,怎么两个单位都不同啊? 常见几种废塑料如何区别? 我想测试导热硅胶片的导热系数,通过热阻怎么计算?测试标准是什么? 这句话里的“有益”是指什么?“出色的想法”又是指什么?爱因斯坦说的这句话是什么意思?文章中的这句话是:这时,爱因斯坦举起手中的卡片一晃说:“不,我非常有益地度过了这段时间,在 如何用眼区分废塑料上漂和下沉 导热硅胶片的导热系数,怎么测试?什么方法呢 谁知道爱因斯坦的这句名言什么意思?If at frist the idea is no absurd ,then the is no hope for it. 29磅/立方英尺等于多少千克/立方米29lbs/ft3 等于多少kg/立方米? 汽车标志:一双张开的,上翘的翅膀,中间是个圆圈,有个大写得R,下面还有一个R开头的英文单词标志是直接镶在车头引擎盖上的,不是站立的,大概有矿泉水瓶底那么大~我是昨晚在家旁边大酒店 气旋和反气旋 1立方米/千克等于多少立方英尺/磅 狮子座的太阳,月亮,水星,金星,火星,木星,土星,天王星,海王星,冥王星各落在什么星座.1984年8月7日临晨6点多吧出生地:内蒙古呼和浩特请问我的太阳,月亮,水星,金星,火星,木星,土星,天王星,海 悼念玛丽.居里爱因斯坦写的课外阅读答案,结束表达作用是什么?后者指什么?第3段同第1段哪个句子相呼应?急 还有两个星期就要生物竞赛了,求大神指导系统复习,最好具体点, 重力加速度公式m/s^2怎么理解比如说9m/s^2是什么意思,是不是v每秒的变化是:0m到81m到324m……呀? 求分析星盘行星 太阳 月亮 水星 金星 火星 木星 土星 天王星 海王星 冥王星 上升行星 太阳 月亮 水星 金星 火星 木星 土星 天王星 海王星 冥王星 上升 星座 双鱼座 双鱼座 水瓶座 魔羯座 魔 爱因斯坦对现在造成了什么影响 很多商品的商标旁边有一个圆圈里面写有一R字母是什么意思,代表什么? 是不是每个人都有太阳 月亮 上升 水星 金星 火星 木星 土星 天王星 海王星 冥王星的星座啊?如有的话 能告诉我他们分别代表着什么吗? 导热系数单位读法——0.024W/M.K 怎么读? 加速度什么情况用m/s² ,什么情况用m/s^-2 两种导热系数不一致导热硅胶意外混合之后总体导热效果会怎么样,其物理化学性质会有怎么样的改变呢? 导热系数418W/M.K中文这么读 每s的加速度相同吗 每m的加速度一样吗 怎么理解爱因斯坦的这句话爱因斯坦说我们所存在的宇宙是一个体积有限但是没有没有边界的空间 某平行板电容器的电容为C,带电量为Q,相距为d,今在板间中点放一个电量为q的点电荷,则它受到的电场力的大小为 为什么速度求导是加速度,m/s 求导是-m/s^2 是关于爱因斯坦一句话的材料作文,麻烦帮我解释一下这句话的含义.爱因斯坦曾说过:“一个人是一个整体的一个部分——即我们所称的宇宙——受到时间、空间限制的一部分,他亲生体验到 我理解爱因斯坦的阅读答案 m=800g,加速度a=40cm/s∧2,则F合 导热灌封胶的导热系数要大于多小W/m.k才算满足市场的需求? 石英砂导热系数是多少, 初三上半年物理化学知识要点 自由落体的加速度与重力的关系书上说自由落体的加速度g与重力有关,又说当物体自由下落时,不是下落速度,而是加速度与重力直接相关.请问:这两句话对吗? 如果对的话,那么这里的“重 m³/HR什么意思那m³/H 和m³/HR 有什么区别嘛? 商标名称右上角圆圈中的R表示什么意思? 我想找一种高导热系数、膨胀系数小的灌封胶 如图,求品牌名称, 四个字母,第二个字母是A 容积单位常用的有哪些 质量不同的物体所受重力不同,加速度不同,为什么做自由落体运动的物体的加速度均为g? 1984年8月20日出生 ,太阳,月亮,水星,金星,火星,木星,土星,天王星,海王星,冥王星各落在什么星座1984年8月20日 早上8:20出生的还有,这是怎么计算的呢? 容积常用什么单位表示 耐高温电子灌封胶的导热系数一般是多少请提供行业内耐高温电子灌封胶产品的导热系数的较高值和较低值. HR M什么意思 常用的容积单位有?要三个 我们已经知道,作为自由落体加速度,g的单位是m/s²,但我们在初中学过,作为质量与物体所受重力的比例系数,g的单位是n/kg,请证明1m/s²=1n/kg.急 HR;137b/M 请问这是什么意思 标圆圈的R怎么打,也就是商标符号 为社么自由落体加速度和重力中的g相同从重力,地球吸引的角度分析,我是高一新生,正在预习,讲得详细点,通俗点 流体力学茶杯现象原理早晨我泡了一杯茶,待茶叶沉底之后我用筷子搅拌茶水.结果,茶水作漩涡运动.茶水表面行成一抛物面,由此抛物面引起的经向水压梯度在茶水除底部边界层以外的每一层 常用的容积单位(3个) 哪种防水材料好,无毒我想问问哪种防水材料好,并且无毒 流体力学中有哪些效应或特殊的现象譬如 烟囱效应
    备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘