C#调用百度地图接口简单示例

1、首先用一个html文件调用百度地图接口(主要注册一个序列号):

[html]  view plain  copy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5.     <title>百度地图的Hello World</title>  
  6.     <style type="text/css">  
  7.         body, html, #allmap  
  8.         {  
  9.             width: 100%;  
  10.             height: 100%;  
  11.             overflow: hidden;  
  12.             margin: 0;  
  13.         }  
  14.         #l-map  
  15.         {  
  16.             height: 100%;  
  17.             width: 78%;  
  18.             float: left;  
  19.             border-right: 2px solid #bcbcbc;  
  20.         }  
  21.         #r-result  
  22.         {  
  23.             height: 100%;  
  24.             width: 20%;  
  25.             float: left;  
  26.         }  
  27.     </style>  
  28.   
  29.   
  30.     <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.5&ak=6c497f51c06477544e5fa6e9bd68f7c3"></script>  
  31.   
  32.   
  33. </head>  
  34. <body>  
  35.     <div id="allmap">  
  36.     </div>  
  37. </body>  
  38. </html>  
  39.   
  40.   
  41. <script type="text/javascript">  
  42.     //alert("Hello World");  
  43.     var map = new BMap.Map("allmap");               // 创建Map实例  
  44.   
  45.   
  46.     var point = new BMap.Point(121.504, 31.212);    // 创建点坐标(经度,纬度)  
  47.     map.centerAndZoom(point, 11);                   // 初始化地图,设置中心点坐标和地图大小级别  
  48.     map.addOverlay(new BMap.Marker(point));         // 给该坐标加一个红点标记  
  49.   
  50.   
  51.     //var traffic = new BMap.TrafficLayer();         // 创建交通流量图层实例       
  52.     //map.addTileLayer(traffic);                     // 将图层添加到地图上     
  53.   
  54.   
  55.     map.addControl(new BMap.NavigationControl());   // 添加平移缩放控件  
  56.     map.addControl(new BMap.ScaleControl());        // 添加比例尺控件  
  57.     map.addControl(new BMap.OverviewMapControl());  //添加缩略地图控件  
  58.   
  59.   
  60.     map.addControl(new BMap.MapTypeControl());      //添加地图类型控件  
  61.     map.setCurrentCity("上海");                     //设置地图显示的城市  
  62.   
  63.   
  64.   
  65.   
  66.     map.enableScrollWheelZoom();                    //启用滚轮放大缩小  
  67.       
  68.     function setLocation(x,y){//参数:经纬度  
  69.          var point = new BMap.Point(x, y);     
  70.          map.centerAndZoom(point, 11);                    
  71.          map.addOverlay(new BMap.Marker(point));        
  72.     }  
  73. </script>  



2、建立一个Winform项目,用一个WebBrower控件查看html文件、调用JavaScript代码
[csharp]  view plain  copy
  1. using System;  
  2. using System.IO;  
  3. using System.Collections.Generic;  
  4. using System.ComponentModel;  
  5. using System.Data;  
  6. using System.Drawing;  
  7. using System.Text;  
  8. using System.Windows.Forms;  
  9.   
  10.   
  11. namespace BaiDuMap  
  12. {  
  13.     public partial class Form1 : Form  
  14.     {  
  15.         public Form1()  
  16.         {  
  17.             InitializeComponent();  
  18.         }  
  19.   
  20.   
  21.         private void Form1_Load(object sender, EventArgs e)  
  22.         {  
  23.             try  
  24.             {  
  25.                 //webBrowser1.Url = new Uri("http://www.2345.com");  
  26.                 //这个文件于可执行文件放在同一目录  
  27.                 webBrowser1.Url = new Uri(Path.Combine(Application.StartupPath, "GoogleMap.htm"));  
  28.             }  
  29.             catch (Exception ex)  
  30.             {  
  31.                 MessageBox.Show(ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);  
  32.             }  
  33.   
  34.   
  35.         }  
  36.   
  37.   
  38.         private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)  
  39.         {  
  40.             //这里传入x、y的值,调用JavaScript脚本  
  41.             webBrowser1.Document.InvokeScript("setLocation"new object[] { 121.504, 39.212 });  
  42.         }  
  43.   
  44.   
  45.     }  
  46. }  

首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/details/9617177)。

        那么接下来就是一些关联性的操作。首先我建议把web的文件放到vs中来进行修改(文件本身以及用到的资源都要存到bin/debug中)。

这样统一操作更容易实现。

几个关键的问题在这要提一下:

问题一:webbrowser和form之间的数据传输问题。

答:这个已经在http://blog.csdn.net/buptgshengod/article/details/9617093,这里讲过了。

问题二:如果你不会html怎么办?

答:http://developer.baidu.com/map/jsdemo.htm。这个是百度地图api的demo网址,在里面选择你想要的功能。如果有基本的编程功底的,把这个加进自己的代码还是很容易做到的。这里要注意以下,使用demo中的代码要用百度提供的key,

<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.5&ak=这里插入自己的key"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/DistanceTool/1.2/src/DistanceTool_min.js"></script>

问题三:如果form要对地图进行操作怎么办?

答:将要对地图进行的操作,写成function函数,比如

function  getdistance()
{return result1;} 

这是一个返回值的函数,然后在form中webBrowser1.Document.InvokeScript("getdistance");就可以使地图执行这个函数。




  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值