北京的地铁线路又增加了几条,无奈windows phone的软件更新实在不给力,很多线路都没有。那只能自己做一个了。做好的效果如下图:

代码下载:http://files.cnblogs.com/infly123/PhoneSubWay.rar

软件说明:

开发工具:visual studio 2010 其中弹出框用了Codig4Fun第三方控件。

支持拖拽地图位置、查询站点位置、查询所有线路和所有站点、缩放地图大小等功能。

地铁的线路及站点信息存放在XML文件中,若增加了新的线路,则在XML中增加新线路及所有站点信息即可,软件可自动在界面中画出新的线路。

主要代码说明:

1.XML文件:<Lines>节点声明了所有的地铁线路及颜色,<Nodes>包括站点名称、站点坐标、所属线路信息。

<SubWay><Lines><Line Name="1号线" Color="255, 255, 0, 0" /><Line Name="2号线" Color="255, 0, 104, 183" /><Line Name="4号线" Color="255, 0, 255, 255" /><.....></Lines><Nodes Name="4号线"><Node Name="安河桥北" X="-15" Y="450" LineName="4号线"></Node><Node Name="北宫门" X="50" Y="450" LineName="4号线"></Node><Node Name="西苑" X="115" Y="450" LineName="4号线"><.....></Nodes Name="4号线">
</Lines>

2.数据的读取:

颜色的读取:

/// <summary>/// 将Xml中的Color的字符串描述转换为Color类型/// </summary>/// <param name="s"></param>/// <returns></returns>public Color GetColor(string s){byte b1 = byte.Parse(s.Split(',')[0]);byte b2 = byte.Parse(s.Split(',')[1]);byte b3 = byte.Parse(s.Split(',')[2]);byte b4 = byte.Parse(s.Split(',')[3]);Color myColor = Color.FromArgb(b1, b2, b3, b4);return myColor;}

站点信息的读取:(用了Linq,其中SubNode为站点类,包括站点名称Name,站点坐标Point,站点所属节点LineName)

 //获取站点集合var nodes = from s in root.Elements("Nodes").Elements("Node")select new SubNode                              {Name = s.Attribute("Name").Value,Point=new Point(double.Parse( s.Attribute("X").Value),double.Parse( s.Attribute("Y").Value)),LineName=s.Attribute("LineName").Value};ListSubNode = nodes.ToList<SubNode>();

3.查看所有线路及其包含的站点:这里将地铁集合与控件进行了绑定,并且显示信息为站点名称

<ComboBox x:Name="cobLine" ItemsSource="{Binding}" Margin="12,12,295,29" SelectionChanged="cobLine_SelectionChanged"><ComboBox.ItemTemplate><DataTemplate><TextBlock Text="{Binding Name}"></TextBlock></DataTemplate></ComboBox.ItemTemplate></ComboBox>

最后:

软件还有很多不足之处,由于时间仓促很多地方的实现方法并不是很好,比如弹出窗体搜索站点中我想使用AutoCompleteBox实现智能提示,但受Codig4Fun控件的限制效果并不好(这个我放在了"设置"中);缩放地图后再查询某个站点定位会不准确;没法根据布局单独设置某个站点名称的显示位置等

本人大四,热爱编程,欢迎.net及其他方向的程序员一起交流一起进步,欢迎加我qq:1241311001

转载于:https://www.cnblogs.com/infly123/archive/2013/05/25/3099330.html

Windows phone 北京地铁软件实现相关推荐

  1. 337个人写了一封信,然后北京地铁有了无障碍地图

    一个月前,橙子的好朋友,高德地图的小伙伴收到了一封信,上面密密麻麻地写了337位残障年轻人的名字. "有时候,我们按照地图导航软件的指引来到了地铁口,却发现没有直梯,我们下不去.有时候,我们 ...

  2. 地铁逃生的服务器正在维护吗,LifeKeeper为北京地铁保护维护系统

    SteelEye与阿尔斯通日前联合宣布,将部署SteelEye® LifeKeeper® for Linux,为北京地铁2号线维护系统服务中的关键应用提供保护.地铁2号线是连接北京市郊的快速轨道交通网 ...

  3. 系统的基本组成;中文Windows操作系统;字处理软件Word;电子表格软

    <计算机文化基础>系高职高专计算机系列教材之一,根据教育部最新制定的<高职高专教育计算机公共基础课程教学基本要求>,针对微型计算机及其软件的最新发展,主要介绍了计算机基础知识: ...

  4. 双向广搜的DIJKSTRA算法--简易的北京地铁导航实现

    本学期的课程设计,实现最短路的算法,于是采用了DIJKSTRA算法,并用双向广搜优化了. 实现了简易的北京地铁导航.于是把代码分享出来. (核心代码是find_min(),Dijkstra()部分) ...

  5. Project 2 : 北京地铁数据处理及路径探寻

    完成北京地铁路线搜寻 使用搜寻策略完成如下项目:接收两个北京地铁站站点,得到两个站点间的优化路径. Please using the search policy to implement an age ...

  6. 控件无法安装,windows已经阻止此软件因为无法验证发行者

    1.一般情况下,浏览器会自动加载控件,从浏览器上方可以看到提示,如下图: 2.这时候,单击控件栏,选择"安装ActiveX控件",正常情况下,可以成功安装控件.如果因为" ...

  7. python自动控制windows、Android的软件用来实现机器人流程自动化--RPA,外挂、自动化测试等方面的解决方案

    python自动控制windows.Android的软件用来实现机器人流程自动化--RPA,外挂.自动化测试等方面的解决方案 参考文章: (1)python自动控制windows.Android的软件 ...

  8. 3天初版部署7天快速迭代!百度飞桨携手北京地铁落地AI口罩检测方案

    允中 发自 凹非寺  量子位 报道 | 公众号 QbitAI 百度AI抗疫,又有新方案部署落地.这次,事关企业复工后,持续升级的公共交通防疫战. 近日,针对北京地铁防疫需求,百度与北京地铁合作开展了A ...

  9. 正版python软件多少钱-北京正版软件SeismoSelect 价目表

    北京正版软件SeismoSelect 价目表 [srhjhg] 在企业里,晋升.加薪的人,总是少数的.即便你看过很多"职场"故事,从普通员工三年逆袭成为部门总监或总裁,每当看到这些 ...

最新文章

  1. 深入探索 Java 热部署--转
  2. mysql过滤器_MYSQL复制过滤器
  3. Java中三种字符串的拼接(++ , String.format , StringBuilder.append)
  4. 解决wordcloud显示中文为空格(空白)
  5. 语音识别中的MFCC的提取原理和MATLAB实现
  6. 搜索树判断 (25 分)(先序建立二叉树)
  7. mysql常见排错_mysql 一些排错技巧
  8. 发现一个Java文件.class在线反编译的简单好用的网址
  9. 计算机与软件水平考试中级,2020年计算机软件水平考试可以直接考中级吗
  10. Activemq 下载地址
  11. Flash 原版官网下载
  12. 一个高考落榜生的奋斗历程
  13. csdn发文——Markdown编辑器
  14. 数字身份的万亿市场之争才刚开始
  15. python中flatten_Python中flatten( ),matrix.A用法说明
  16. 线程同步(临界区、互斥量、事件、信号量)
  17. javascript国际化_如何在JavaScript中实现国际化(i18n)
  18. 一个向上帝买了挂的男人
  19. H5移动端项目实现手写签名功能 vue实现手写签名
  20. 2015-2:新手入门之菜鸟也要用kali

热门文章

  1. 收藏一首好诗 《论孩子》纪伯伦(黎巴嫩) 冰心译
  2. 1990-2021年全国各省外商直接投资水平
  3. 阿里云推出网盘App,开放申请!非会员下载 10MB/s! 没想到还有更牛逼的:60M/s...
  4. 【世界读书日】2023年通信好书推荐
  5. gettimeofday/clock_gettime
  6. PHP加密时遇到try错误,深入学习PHP错误与异常处理
  7. linux sipp 呼叫转移_开源VoIP/电话 - linux学习笔记 - CSDN博客
  8. 计算机辅助制造中构图面,1试卷 计算机辅助制造技术
  9. 行为恶劣的U盘病毒OSO.exe分析与查杀
  10. swift3新路程(11)错误处理(Error Handling)