本例是对WinForm中使用百度地图的简要介绍。百度地图目前支持Android开发,IOS开发,Web开发,服务接口,具体可以参照'百度地图开放平台'。

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

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

效果图如下:

关于调用百度地图的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对象

效果图如下:

关于在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)!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php 嵌入手机百度地图,C# 程序中嵌入百度地图相关推荐

  1. 如何在Windows 10的地图应用程序中获取离线地图

    If you know you're going to be using your PC in a location without an Internet connection, and you n ...

  2. 在windows程序中嵌入Lua脚本引擎--编写自己的Lua库

    在<在windows程序中嵌入Lua脚本引擎--建立一个简易的"云命令"执行的系统>一文中,我提到了使用Lua的ffi库,可以让我们像写C代码一样写lua程序.这是个非 ...

  3. 在windows程序中嵌入Lua脚本引擎--建立一个简易的“云命令”执行的系统

    在<在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎>开始处,我提到某公司被指责使用"云命令"暗杀一些软件.本文将讲述如何去模拟一个 ...

  4. 在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎

    前些天听到一个需求:某业务方需要我们帮忙清理用户电脑上的一些废弃文件.同事完成这个逻辑的方案便是在我们程序中加入了一个很"独立"的业务逻辑:检索和删除某个程序产生的废弃文件.试想, ...

  5. 在WinForm应用程序中嵌入WPF控件(转)

      我们知道,在WPF界面上添加WinForm的控件需要使用WindowsFormHost类.而在WinForm界面上添加WPF控件该如何做呢?有没有类似的类呢?明显是有的,ElementHost就是 ...

  6. 在WinForm程序中嵌入ASP.NET

    现在的流行趋势是桌面程序Web化,Web程序桌面化,呵呵.最终目标就是你中有我,我中有你.例如MSN Explorer就是一个很好的展示,让用户在使用的时候分不清什么时候是在本地什么时候是在网络.而这 ...

  7. 在JavaFX程序中嵌入Swing内容

    转载自  在JavaFX程序中嵌入Swing内容 本教程描述如何在JavaFX应用程序中嵌入Swing组件.本文将讨论线程限制并提供一个可运行的应用程序来说明在JavaFX应用程序中嵌入带HTML内容 ...

  8. 在python程序中嵌入浏览器_用Python中的wxPython实现最基本的浏览器功能

    通常,大多数应用程序通过保持 HTML 简单来解决大多数浏览器问题 ― 或者说,根据最低共同特性来编写.然而,即便如此,也仍然存在字体和布局的问题,发行新浏览器和升级现有浏览器时,也免不了测试应用程序 ...

  9. 在WinForm程序中嵌入ASP.NET[转]

    在WinForm程序中嵌入ASP.NET 现在的流行趋势是桌面程序Web化,Web程序桌面化,呵呵.最终目标就是你中有我,我中有你.例如MSN Explorer就是一个很好的展示,让用户在使用的时候分 ...

最新文章

  1. Spring复习笔记:2
  2. windows通过putty连接虚拟机Fedora
  3. 通讯实例 modbus_实例讲解PLC实现modbus通讯
  4. 做个全国一等奖的小车,其实不难(F题:智能送药小车方案分享)
  5. python缺失值类型与分析_3.1.1 缺失值分析
  6. SAP License:如何利用DEBUG强力修改表
  7. 设置隔离级别实现并发控制
  8. jquery判断自己是父节点的第几个子节点
  9. cocos creator动画编辑器学习
  10. Window10 运行 mvn报错:NB: JAVA_HOME should point to a JDK not a JRE 解决
  11. 取消word文档中某些页面的页眉
  12. .NET Reflector(.net反编译工具) v10.0.7.774 特别版(附破解步骤+注册机)
  13. openstack下创建windows虚机出现do_hivex_close
  14. html input 宽度自适应,CSS实现input宽度根据输入内容自适应
  15. 信息学奥赛与大学计算机课程,信息学是什么课程
  16. 【数据集|COCO】COCO格式数据集制作与数据集参数计算
  17. 初学爬虫 request中的post方法(内含爬取金山翻译案例)
  18. 编译内核模块出现 include/linux/autoconf.h or include/config/auto.conf are missing.解决方法
  19. 浅谈限流式保护器在商场电气火灾防范中的应用
  20. 多线程实现的几种方式

热门文章

  1. 如何跨服务器复制表中数据
  2. 决策树 prepruning_决策树与随机森林
  3. python自己创建模块引用失败_详解Python import方法引入模块的实例 Python怎么import自己写的模块...
  4. ubuntu14.10 linux-header更新,Ubuntu 14.04 怎样升级到 Ubuntu 14.10
  5. golang mysql连接池原理_redis mysql 连接池 之 golang 实现
  6. c matlab 引擎调用,【MATLAB与C的混合编程】之【C程序调用Matlab计算引擎】(1)
  7. 高品质餐饮相关场景模型素材,开始独特的场景来展示设计。
  8. 手机移动端APP引导界面设计模板素材,分层可临摹
  9. linux下的汇编,linux下的汇编分析
  10. Linux内核:内存从BIOS->e820->memblock->node/zone基本流程