首页 > 代码库 > C#winform和百度API互动-----之读取中js的参数

C#winform和百度API互动-----之读取中js的参数

上百度的API

<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
 <style type="text/css">
  body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
 </style>
 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
 <title>测距</title>
</head>
<body>
 <div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
 // 百度地图API功能
 var map = new BMap.Map("allmap");
 map.centerAndZoom("重庆",12);  //初始化地图,设置城市和地图级别。
 var pointA = new BMap.Point(106.486654,29.490295);  // 创建点坐标A--大渡口区
 var pointB = new BMap.Point(106.581515,29.615467);  // 创建点坐标B--江北区
 alert(‘从大渡口区到江北区的距离是:‘+(map.getDistance(pointA,pointB)).toFixed(2)+‘ 米。‘);  //获取两点距离,保留小数点后两位
 var polyline = new BMap.Polyline([pointA,pointB], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});  //定义折线
 map.addOverlay(polyline);     //添加折线到地图上
          function getdistance() //这个是自己添加的,自己定义个方法然后让WINFORM调用,(当然也可以反过来,WINFORM中定义个方法,JS中再调用)
       {return  map.getDistance(pointA,pointB).toFixed(2);}
</script>

——————————————————————————————————————————————————————————————————————————————————————

加入控件WEBBROWER

在窗体load中加入代码

 string str_url = Application.StartupPath + "\\HTM的名字.htm"; //htm要放到DEBUG目录下  ,如果不用启动目录放任意目录 string str_url="";自己琢磨吧                   
 Uri url = new Uri(str_url);              
webBroGIS.Url = url;           
 webBroGIS.ObjectForScripting = this; 

上WINform代码

 var s = webBrowser1.Document.InvokeScript("getdistance");//引号中是function的函数名,注意变量要用var型

txtbox.text=s.tostring();

-----------------------------------------------------------

几个问题 1乱码要把charset 改成gb2312,2秘钥自己网上搜吧

C#winform和百度API互动-----之读取中js的参数