Windows下C#的GUI窗口程序中实现调用Google Map的实例
程序员文章站
2022-05-25 23:08:50
对谷歌地图操作使用的是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); } } }
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"); }
上一篇: 孕妇小孩都能吃火鸡的蛋吗
下一篇: 常遇春为什么会成为徐达的助手?原因是什么