在Winform中显示Google地图

2 篇文章 0 订阅
1 篇文章 0 订阅

由于Google Map不提供WinForm的API,在WinForm中显示Google地图可以采用WebBrowser浏览器控件显示网页,从而实现在WinForm中显示地图。在WebBrowser中可以通过直接打开网页(如http://maps.google.com/)来显示Google地图,也可以自己在本地设计一个Google地图网页,然后加载到WebBrowser中显示地图。通过其他服务器发布的地图网页有时候可能无法满足你的开发需求(在很多情况下它可能没有公开一些数据接口),所以,建议在本地设计一个Google地图网页,并开发所需的地图功能。Google地图为浏览器端的开发提供了多种API,如Javascript、Flex,若采用Flex需要Flash Builder等IDE来进行FLEX开发,但采用Javascript来开发就要简单方便多了,本身我们的浏览器就是Javascript的编译器,只需要用文本工具编写简单的HTML和Javascript代码即可。

1.1一个简单的Javascript地图

首先,利用文本工具或者Javascript专业编辑工具(如1st JavaScript Editor),新建一个文件,输入如下代码(注意红色的部分):

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<metaname="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no" />

<metahttp-equiv="content-type" content="text/html;charset=gb2312">

<title>地图定位</title>

<linkhref="http://code.google.com/apis/maps/documentation/javascript/examples/default.css"rel="stylesheet" type="text/css" />

<scripttype="text/javascript"src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>

<scripttype="text/javascript">

下面来解释一下上面红色代码的含义,首先在script中定义了地图对象map,然后定义初始化函数initialize(),在initialize()函数中首先定义了变量myLatlng,用于表示地图显示中心,如下图所示:

变量myOptions用于定义地图的一些选项,如缩放等级(zoom)、地图中心(center)、是否能双击缩放(disableDoubleClickZoom)、地图类型(mapTypeId)等等。

其中地图类型mapTypeId主要有四种地图,即:

l       HYBRID:该地图类型显示卫星图像上的主要街道透明层。

l       ROADMAP:该地图类型显示普通的街道地图。

l       SATELLITE该地图类型显示卫星图像。

l       TERRAIN该地图类型显示带有自然特征(如地形和植被)的地图。

在定义了变量myOptions后,实例化地图对象,如下:

map = newgoogle.maps.Map(document.getElementById("map_canvas"), myOptions);

上面代码中document.getElementById("map_canvas")是获取HTML中添加的map_canvas对象,即将地图显示在map_canvas中。

至此,完成了一个简单的地图。

1.2在WinForm中显示地图

在Winform中显示地图主要分两个步骤,第一个步骤就是创建项目并添加WebBrowser控件,第二步就是加载前面编写的index.htm网页文件。

首先新建一个项目,如下图所示:

然后添加Webbrowser控件到窗体中,假定添加的Webbrowser控件的名称为webBrowser1,在窗体的Load事件中添加加载网页的代码,假定网页存放在项目的debug文件夹中,如下:

        privatevoid Form1_Load(objectsender, EventArgs e)

        {

            try

            {

                //加载地图

                stringaddress = "File:\\" + Application.StartupPath + "\\index.htm";

                Uriurl = new Uri(address);

                webBrowser1.Url = url;

               webBrowser1.ScriptErrorsSuppressed = false;

           }

            catch(Exception except)

            {

                MessageBox.Show(except.Message,"提示!",

                    MessageBoxButtons.OK,MessageBoxIcon.Warning);

            }  

       }

运行程序,即在Winform中显示了前面编写的网页地图,如下图所示:


}

</script>

</head>

<bodyοnlοad="initialize()">

  <divid="map_canvas" ></div>

</body>

将文件保存为index.htm,然后用浏览器打开该网页文件,即在网页中添加了Google地图,其结果如下图所示:


  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值