欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-02-22 19:31:05
对谷歌地图操作使用的是webbrowser控件,通过对javascript的操作来实现对谷歌地图的各种操作,所以首先要创建一个html文件,并赋给webbrowser的ur...

对谷歌地图操作使用的是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); 
    } 
  } 
} 

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

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");  
    }