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

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服务搜索此位置的名称。
    兴趣点
    在我的工作中,我添加了几个按钮来改变不同地图的模式如:航空,公路,街道,卫星,...... 等等,但我发现,这是不必要的,所以我删除了它。
    历史
    这是第一个版本,我会尽快与更先进的功能,转载时请注明出处。

     

    《Kingdom Rush Frontiers》上线后 迅速抢占27个国家游戏榜首 移动周报:85后程序员,iOS开源项目,细数7天大事件! Instagram:从Redis到Cassandra 成本节省1/4 乐元素CTO凌聪访谈:游戏引擎技术选型之王道 iOS 7的新设计并非止于外表 WWDC 2013大会10大启示:正向开发者支付大量现金 云计算大会微软专场成功举办 Windows Azure公众预览版上线 IBM全球大裁员 在美国裁员已经开始 动动鼠标,决定“中国十大优秀开源项目”的归属 为改善Flickr 雅虎收购拍照应用开发商GhostBird 让你轻松学习新代码库的六个步骤 RESTful API 设计最佳实践 谷歌11亿美元豪购Waze原因:获取数据 争本地广告市场 为什么大家都要疯狂吐槽iOS 7的扁平化设计? 伟大的程序员是天生的,不是造就的 比Hive高效7倍 Facebook推新一代查询引擎Presto 未来的存储系统设计——PMC技术交流会举行 第五届中国云计算大会PPT尝鲜:十位专家分享的架构实践 “DIY”可穿戴设备:索尼开放智能手表固件 在微软的八个月里,我学到了这些 谷歌实习生每月都拿$6000,你呢? 【第五届中国云计算大会】由瓦特变比特输出,新疆要做中亚云服务中心 应用程序扩展性实现的十宗罪 图文:看谷歌实习生的惬意生活 为移动而设计:交互设计篇 小米游戏中心月度报告:极品、神庙、找你妹 中科院:常温下的液态金属电路3D打印机 细数IE10里的HTML5特性 使用Twitter Bootstrap的五大理由 Twitter重塑API战略 开启V1.1时代 Sony开放SmartWatch 支持第三方定制固件 打印机的取消按钮 dbgrid中当某个单元格失去焦点时触发什么事件? 关于Database和Session的问题!火急! yanxu1 学习unix下的c编程,该如何学?请介绍方法,资料什么的--我对unix和c都还熟悉。 打印机死机作何解?????? 我是新来的,请各位大哥、大姐们多多关照!!!(有内容) 再次发问关于sql server7的问题?? SQL SERVER中的一个触发器的问题!!! xml里有什么method可以取得子节点在父节点中的位置(序号)? please help me 怎么样才可以把系统存储过程的结果写到结果集里? 如何声明和使用自定义对象(如:Tdataset)的事件(beforecancel)?? 一个奇怪的问题? 各位兄弟,谁知道哪里有pb7的下载? 天呐 我提的问题从来没人回答 SQL Server小小问题 请问那里有DELPHI第二张光盘下载! 如何是使用describe来获取datawindow中的带区参数? 谁有早期的TeeChart5.ocx,文件大小为2,576,384,发行日期在2001-06-17号以前的,我这里有个crack软件,但是新下载的不行,所以重金寻求!!! 请问C语言中有字符串查找函数吗? 请问如何动态的改变应用程序的图标,一定给分 Query主从表编辑问题,从不丢失! 急急急!!!! 高分求禁止IE的自动谈出的广告,有个软见也行,或者告诉实现方法。请告诉下载的网址。 打印一些清单在delphi中用哪些控件比较好? 如何打印到文件 如何得到WINDOWS的拼音字库 如何在BCB中进行SDK编程? 一个简单关于对话框的问题------->> 用asp将图片插入数据库,到底错在哪?苦恼啊!以前这个也通过了(win2000server+Sql7.0)但...(高分!!!!) 为什么我在Access2000的mdb中只能最多得到一条记录? 男人25岁就大吗? 关于 C 类IP的屏蔽 配置为COM+组件后,CoCreateInstance 失败! 关于C 类 IP的屏蔽 有谁知道本.拉登的QQ,俺找他有事?重奖`~~~~~~~~~~~~~~~~~~~! 有没有人告诉我,HTTP头跟正文中间夹的什么? 请问asp和php能访问webservice吗??? 如何一打开NOTE客户端就执行我的数据库(不能设书签)? true dbgrid控件怎么使一个网格又下拉的列表弹出来 关于计数器的代码 那里有含有K线图的图表控件和像OFFICE的工具栏控件下载? 十万火急!如何在Dialog上显示Menu??(我只能给到27分了) 十万火急!如何在Dialog上显示Menu??(我只能给到27分了)十万火急! 问一下,笔记本上的软驱通用吗? maskedit的问题? delphi中报表的问题 关于常用的几种压缩编码? tomcat启动出错,请问什么原因? 一个小问题。回答就给分? 在JSP页面中,能否嵌入ActiveX控件 非转基因食品优于转基因食品吗?在超市里,常常有促销员在推销非转基因大豆油,仔细一看,在油的原料上确实分转基因和非转基因,请问转基因和非转基因的食品有什么不同,哪个对人体更好? 一堆沙,第一次运走34吨,第二次运走了总吨数的8份之3,两次共运走了总数的5份之4,这堆沙共有多少吨? 用字母表示,长方体,正方体的表面积,体积,周长公式,圆柱体的体积,表面积公式,圆锥的体积公式,(正用和逆用公式都要)(全部用字母表示)急用, 请问转基因食品,和非转基因食品的区别在那里? 工艺商场按标价销售某种工艺品时,每件可获毛利45元;按标价的八五折销售该工艺品8件与将价与将标价降低35元该工艺品12件所获的毛利相等.该工艺品每件的进价、标价分别是多少元?(标价 一种电视机商场按进价加价百分之三十五,然后按定价打9折出售,并且每台送“打的”费50元,这样每台可获利241.6元,每台进价多少? 南京某商场搞促销活动,凡购物不超过500元,按九折优惠;购物超过500元,其中500元按九折优惠,超过500元的部按八折优惠.某人购物实际用了474元.(1)此人所购物品若不打折需多少元?(2)此人在 工艺商场按标价销售某种工艺品时,每件可获利润45元,按标价的八折销售该工艺品10件与将标价降低25元该工艺品12件所获利润相等,求该工艺品每件的进价,标价分别是多少元? 在一个长3dm、宽2dm的长方体里画一个最大的圆,这个圆的面积是( ).周长是( ).2.把一个圆平均分成若干个小扇形,再拼成一个近似的长方形,这个长方形的长是9.42dm,周长是24.84dm.这个圆的周 商场优惠:购物超过200元但不超过500元的,按标价给九折优惠;超过500元的,其中500元九折,超出部分则...商场优惠:购物超过200元但不超过500元的,按标价给九折优惠;超过500元的,其中500元九 “十一”黄金周期间,某商场将一件工艺品的标价提高2/3后贴出“七折优惠”的招牌.“十一”黄金周期间,某商场将一件工艺品的标价提高 以后贴出“七折优惠”的招牌促销,这样每售出此工 一种电视机,商场按进价加35%定价,然后按定价打九折出售,并且每台送“打的”费50元,这样每台仍可获利208元.这种电视机的进价是多少元?答案上说是1200元,只是不知道为什么这么做, 一个圆的直径是8dm,它的半径是( ),它的面积是( ) 工艺商场按标价销售某种工艺品时,每件可获利润45元,按标价的八五折销售该工艺品8件与将标价降低35元该工艺品12件所获利益相等,求标价和进价? 半径是1dm的圆如果半径增加1dm周长增加()dm 紫薯是转基因食品吗? 一批货物,第一次运走40%,第二次运走15吨,两次一共运走这批货物的70%,这批货物原来有多少吨?(求算式我正在做题! 有赏 有一批货物第一次运走总数的1/5,第二次运走总数的1/4,运走的比剩下的少10吨这批货物有多少吨.文字讲解 一辆汽车油箱装满了油,第一次用去一半后又加上6升油,第二次用去油箱中实有油的1/4,结果再加8升,油箱注满,问油箱能装多少油 已知大圆面积和小圆面积的比是2:3,小圆的半径是3dm,求大圆的面积 一个长方体的长宽高分别为6cm、5cm、4cm,若把他切割成三个大小相同的小长方体,这三个小长方体的表面积的最大是多少?最小是多少? 一辆汽车在第一次外出时用去了油箱中25%的油,第二次外出又用去了余下的30%的油,结果还剩8升油,求油箱中原来有多少的油?若设油箱中原来有x升油,则怎么列方程?快我只有20分钟 如何分辨转基因食品 一批货物第一次运走1/5正好是第二次的2/3,还剩22吨,这批货有几吨 一辆汽车的油箱加满油后,第一次用去油箱内油的一半,第二次用去剩下的一半还多5升,这时油箱还有油25升,这个汽车的油箱一共可装油多少升? 怎样区分转基因食品 一个长方体长10cm,宽8cm,高5cm,把它切成两块相同的长方体,这两个长方体的表面积和最大是多少平方厘米..最小是多少? 一辆汽车在第一次外出时用去油箱中25%的油,第二次外出时又用去了余下的30%的油,结果还剩21油,则原来油箱存有多少升的油 怎么区分转基因食品 转基因食品 到底哪里有害? 一个圆环,外圆半径为6厘米,内圆半径为4厘米,这个圆环的面积为( )平方米. 上海摩托车加油 这件事到底是哪一个部门管的啊,我要投诉,上次我到加油站加油,人家说不给外地牌照加油,到底是为什么啊,我有车牌,驾驶证,什么都有,就是不给加油,他们还说只给上海车牌加 一个长方体的长是10cm,宽是8cm,高是5cm,把它切成两个长方体,这两个长方体的表面积之和最大是( )cm².要算式 有哪些转基因食品 如何区别转基因食品?在百度百科里面搜“转基因大豆”后看到的危害触目惊心!那么,为什么国外的转基因食品还在源源不断地进入中国?怎么来进行区别呢?虽然我也没有科学依据,但是总觉 现在摩托车怎么才能去加油站加油我有一辆无牌照摩托车,我怎么才能去加油站的时候不被推出来~..现在交通队还给北京市区的摩托车上牌照么 数学题甲商场以"打八折"的措施优惠,乙商场以"满100送10元"的形式促销,在哪家商场购物更便宜一些? 某商场一天共卖出电磁炉与电饭锅24个,已知卖出电磁炉与电饭锅的个数是5比3,电饭锅比电磁炉少卖出多少个 你对转基因食品的看法 甲比乙少30kg,甲是乙的25%.甲乙各多少kg急急急急急急急急急急急急急 一件风衣,商场现在打八八折出售,现在的售价是原价的( )%,比原价便宜了( ) 谈谈你对转基因食品的看法?转基因食品是通过基因技术加入了外来基因的食品.许多人担心吃了转基因食品后,某些基因会转移到人体中.这是由于不了解基因作用原理而产生的一种误解.其实, 一个半径是4dm的圆,如果半径增加1dm,那么周长增加多少dm,面积增加多少平方分米? 李叔叔有一辆车,一次加满油后油箱内有56升油,开了两周后发现只剩下4分之1了,两周用了多少升油? 一、 什么是转基因食品?你了解到的转基因食品有哪些? 一个半径1dm的圆,如果半径增加1dm,周长增加几dm,面积增加几dm 一个油罐最多可以装0.15吨油,27.5吨油需要多少个油罐? 谈谈你对转基因食品的看法?谈谈你对转基因食品的看法? 运输队运一批面粉第一次运走全部的七分之三,第二次运走全部的七分之二两次共用了45吨这批面粉共有多少吨? 一个圆环它的内圆直径是外圆直径的2倍这个圆环的面积怎样快快!! 已知两周长之和是125.6分米,且小圆半径是大圆半径的2/3,求两圆半径快 一个圆的半径由1dm增加到2dm,它的周长增加( )dm? 一个空心钢管的横截面是环形,钢管外圆直径是3dm,内圆直径是2dm,钢管的横截面面积是多少? 如果大圆的半径与小圆的直径相等,则大小两圆半径之比是(),周长之比是(),面积之比是(). 急! 求油箱装油多少升,就是求油箱的容积 一堆沙,第一次运走3.8吨,第二次运走总数的3/8少0.4吨,两次共运走4/5,这对沙还剩多少吨? 一批货物,第一次运走它的4/1,第二次运走了一百吨两次共运走了这批货物的4/3这批货物有多少吨?x-(4/3x-4/1x)=1002/1x=100x=200 甲圆的半径是2dm,乙圆的半径是3dm,甲、乙两圆周长的比是A.2:3 B.3:2 C.4:9为什么 一堆沙第一次运走了38吨,第二次运走的比总数八分之三少4吨,两次共运走了总数的五分之四,这堆沙共有多少吨? 一批货物,第一次运走了1/5,第二次韵有了剩下的1/5,两次共运走了这批货物的多少,还剩下多少
    备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn