C#编程学习(06):使用百度API进行路径规划

简介: C#编程学习(06):使用百度API进行路径规划

官方demo连接:http://lbsyun.baidu.com/jsdemo.htm#i5_9

在C#中使用webbroswer进行地图显示,并利用百度地图API进行路径规划;先上效果图

image.png

1 HTML文件的编写

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
#l-map{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;}
#r-result{height:100%;width:20%;float:left;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=需要自己申请百度API"></script> <!--加载百度API函数-->
<script type="text/javascript" src="DrawingManager_min.js"></script>  <!--加载绘制工具-->
<script src="DistanceTool_min.js" type="text/javascript"></script>  <!--//加载测距工具-->
<title>百度地图的Hello, World</title>
</head>

2 Javascript脚本代码

<script>
function GENERATE_ROUTE(e) {
    //map.addEventListener("click", showPoly);
  map.addEventListener("click", generate_rout);
}
function generate_rout()
{
  var p1 = new BMap.Point(121.443532,31.24603);
  var p2 = new BMap.Point(121.481477,31.240103);
  var p3 = new BMap.Point(121.493262,31.237015);
  var p4 = new BMap.Point(121.49639,31.22762);
  var p5 = new BMap.Point(121.489382,31.225034);
  var p6 = new BMap.Point(121.512953,31.219846);
  var p7 = new BMap.Point(121.510222,31.228122);
  var p8 = new BMap.Point(121.520715,31.232198);
  var p9 = new BMap.Point(121.515828,31.239485);
  var p10 = new BMap.Point(121.498724,31.238868);
  var pointList = [] ;
  pointList.push(p1);pointList.push(p2);pointList.push(p3);pointList.push(p4);pointList.push(p5);
  var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true}});
  for(c=0;c<pointList.length;c++){
      var marker = new BMap.Marker(pointList[c]);
      map.addOverlay(marker);
      //将途经点按顺序添加到地图上
      var label = new BMap.Label(c+1,{offset:new BMap.Size(20,-10)});
      marker.setLabel(label);   
        }
       //driving.search(p1, p5,{waypoints:["华盛小亭","上海科技京城", "豫园"]});
       driving.search(p1, p10,{waypoints:[p2,p3,p4,p5,p6,p7,p8,p9]});
}
</script>

3 c#添加交互代码

private void generateRout_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("generate_rout");
        }

4注意事项

(1)引用的添加

//添加引用:
using System.Security.Permissions;
//许可及com可见
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]

(2)存在缺陷:

1)每次更新坐标需要重新生成exe,十分不便捷

2)百度API提供的起点、终点及经过点覆盖自己定义的标记信息,可作进一步改善

3)目前只是照葫芦画瓢,只是迈出了一小步,规划的路径存明显不是最优;还应深入研究其内部机理,多参考资料进行改善

相关文章
|
2天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
2天前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
2天前
|
存储 安全 机器人
【LLM】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
【5月更文挑战第13天】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
|
2天前
|
Kubernetes 安全 API
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
|
2天前
|
Linux API
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
|
2天前
|
JSON 文字识别 算法
C# 通过阿里云 API 实现企业营业执照OCR识别
C# 通过阿里云 API 实现企业营业执照OCR识别
|
2天前
|
JSON API C#
C# 通过阿里云 API 实现企业工商数据查询
C# 通过阿里云 API 实现企业工商数据查询
|
2天前
|
存储 SQL Java
Java8 Stream API 详解:流式编程进行数据处理
Java8 Stream API 详解:流式编程进行数据处理
|
2天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
|
2天前
|
人工智能 C# 开发者
C#编程中的图形界面设计
【4月更文挑战第21天】本文探讨了C#在GUI设计中的应用,介绍了Windows Forms、WPF和UWP等常用框架,强调了简洁界面、响应式设计和数据绑定等最佳实践。通过实际案例,展示了C#在企业应用、游戏开发和移动应用中的GUI实现。随着技术发展,C#在GUI设计的未来将趋向于跨平台、更丰富的组件和AI集成,为开发者创造更多可能性。