首页 > 编程 > C# > 正文

Windows下C#的GUI窗口程序中实现调用Google Map的实例

2020-01-24 01:12:15
字体:
来源:转载
供稿:网友

对谷歌地图操作使用的是WebBrowser控件,通过对javascript的操作来实现对谷歌地图的各种操作,所以首先要创建一个html文件,并赋给WebBrowser的URl:

<!DOCTYPE html> <html>   <head>     <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />     <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>     <title>Google Maps</title>     <link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>     <script type="text/javascript">          var map;      function initialize() {//初始化       var myLatlng = new google.maps.LatLng( 34.259442,108.947071);       var myOptions = {         zoom: 10,         center: myLatlng,         mapTypeId: google.maps.MapTypeId.ROADMAP       }       map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);     }      function zoomIn(){//放大函数       var zoomLevel = map.getZoom();       if(zoomLevel < 21){         zoomLevel += 1;         map.setZoom(zoomLevel);       }     }      function zoomOut(){//缩小函数       var zoomLevel = map.getZoom();       if(zoomLevel > 0){         zoomLevel -= 1;         map.setZoom(zoomLevel);       }     }      function markLocation(x,y){//标记某个位置       var myLatlng = new google.maps.LatLng(x, y);       map.setCenter(myLatlng);         marker = new google.maps.Marker({       map: map,       position: myLatlng,       draggable:true,       title:"纬度:"+x+" 经度:"+y       });     }          </script>   </head>   <body onload="initialize()">    <div id="map_canvas"></div>   </body> </html> 

 操作地图的简单函数都写在javascript里
C#源文件如下

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;  namespace GoogleMapDemo {   public partial class Form1 : Form   {     public Form1()     {       InitializeComponent();       string url = Application.StartupPath + "/map-simple.html";       webBrowser1.Url = new Uri(url);//指定url     }      private void toolStripButtonStart_Click(object sender, EventArgs e)     {       webBrowser1.Document.InvokeScript("initialize");//执行jiavascript     }      private void toolStripButtonZoomIn_Click(object sender, EventArgs e)     {       webBrowser1.Document.InvokeScript("zoomIn");     }      private void toolStripButtonZoomOut_Click(object sender, EventArgs e)     {       webBrowser1.Document.InvokeScript("zoomOut");     }      private void toolStripButtonMark_Click(object sender, EventArgs e)     {       object[] obj = { toolStripTextBox1.Text, toolStripTextBox2.Text };       webBrowser1.Document.InvokeScript("markLocation", obj);     }   } } 

201649112352791.jpg (738×466)

PS:如果只是想单纯地调用浏览器打开网页,可以这样:

private void lbllink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)       {         //调用IE浏览器       System.Diagnostics.Process.Start("iexplore.exe", "http://www.google.cn");         //调用系统默认的浏览器       System.Diagnostics.Process.Start( "http://www.google.cn");      }  private void lbllink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)     {       //调用IE浏览器       System.Diagnostics.Process.Start("iexplore.exe", "http://www.google.cn");         //调用系统默认的浏览器       System.Diagnostics.Process.Start( "http://www.google.cn");      } 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表