C# 程序中嵌入百度地图

本例是对winform中使用百度地图的简要介绍。百度地图目前支持android开发,ios开发,web开发,服务接口,具体可以参照’百度地图开放平台’。

【动态加载百度地图】涉及到的知识点:

WebBrowser控件,此控件是VS自带的控件,使用户可以在WinForm窗体中导航网页。主要用到Navigate函数,此函数将指定的统一资源定位符 (URL) 处的文档加载到浏览器新窗口或 System.Windows.Forms.WebBrowser 控件中。有关此控件的详细信息,请参照MSDN上详细说明。

百度地图JavaScript API,调用API在网页中显示百度地图。

效果图如下:

922.jpg

关于调用百度地图的Html代码如下:

 1   2   3   4       5       6       7     body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}  8       9      10     地图展示 11      12         window.onload = function () { 13             // 百度地图API功能 14             var map = new BMap.Map("allmap"); 15             var point = new BMap.Point(116.404, 39.915); 16             map.centerAndZoom(point, 15); 17             // 编写自定义函数,创建标注 18             function addMarker(point) { 19                 var marker = new BMap.Marker(point); 20                 map.addOverlay(marker); 21             } 22             // 随机向地图添加25个标注 23             var bounds = map.getBounds(); 24             var sw = bounds.getSouthWest(); 25             var ne = bounds.getNorthEast(); 26             var lngSpan = Math.abs(sw.lng - ne.lng); 27             var latSpan = Math.abs(ne.lat - sw.lat); 28             for (var i = 0; i < 25; i++) { 29                 var point = new BMap.Point(sw.lng + lngSpan * (Math.random() * 0.7), ne.lat - latSpan * (Math.random() * 0.7)); 30                 addMarker(point); 31             } 32             // 33             var top_left_control = new BMap.ScaleControl({ anchor: BMAP_ANCHOR_TOP_LEFT }); // 左上角,添加比例尺 34             var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默认缩放平移控件 35             var top_right_navigation = new BMap.NavigationControl({ anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL });  //右上角,仅包含平移和缩放按钮 36             map.addControl(top_left_control); 37             map.addControl(top_left_navigation); 38             map.addControl(top_right_navigation);    39         }40     41 42 43     
44 45

关于WinForm调用Html的代码如下:

    private void BaiduMap01_Load(object sender, EventArgs e)2         {3             //htm文件Copy到程序根目录4             this.wbBaidu.Navigate(AppDomain.CurrentDomain.BaseDirectory + "Baidu01.htm",false);5         }

【加载静态图】涉及到知识点

调用百度的静态图接口

PictureBox VS自带的图片容器,表示用于显示图像的 Windows 图片框控件。

HttpWebRequest,HttpWebResponse 在WinForm中发送/接收 http请求。

Thread 为了不让界面卡死,采用在后台进程中调用。

将返回的字节流,转换成Image对象

效果图如下:

923.jpg

关于在WinForm程序中调用静态图API的代码如下:

 1 using System;  2 using System.Collections.Generic;  3 using System.ComponentModel;  4 using System.Data;  5 using System.Drawing;  6 using System.Linq;  7 using System.Text;  8 using System.Windows.Forms;  9 using System.Net; 10 using System.IO; 11 using System.Threading; 12  13 namespace DemoSharp 14 { 15     public partial class BaiduMap02 : Form 16     { 17         public BaiduMap02() 18         { 19             InitializeComponent(); 20         } 21  22         private void btnLoad_Click(object sender, EventArgs e) 23         { 24             //在线程中执行 25             Thread t = new Thread(new ThreadStart(InitMap)); 26             t.Start(); 27         } 28  29         private void InitMap() { 30             string url = "http://api.map.baidu.com/staticimage/v2?ak=AKCode需要申请&mcode=666666&center=116.403874,39.914888&width=910&height=400&zoom=11"; 31             HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); 32             request.Method = "GET"; 33             HttpWebResponse response = request.GetResponse() as HttpWebResponse; 34             while (true) 35             { 36                 if (response.StatusCode == HttpStatusCode.OK) 37                 { 38                     Image img = Image.FromStream(response.GetResponseStream()); 39                     this.pictureBox1.Image = img; 40                     break; 41                 } 42                 Thread.Sleep(1000); 43             } 44         } 45     } 46 }

后记:

调用百度地图相关功能时,需要先申请密钥(AK),个人开发学习使用手机进行注册即可。

以上就是C# 程序中嵌入百度地图的内容,更多相关内容请关注PHP中文网(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 06:12:14
下一篇 2025年12月17日 06:12:23

相关推荐

发表回复

登录后才能评论
关注微信