Windows下C#的GUI窗口程序中实现调用Google Map的实例
作者:hzy3774 时间:2022-01-10 10:31:07
对谷歌地图操作使用的是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");
}
标签:C#,地图
0
投稿
猜你喜欢
Android实现图片左右滑动效果
2022-11-30 09:30:35
微服务如何通过feign.RequestInterceptor传递参数
2022-02-26 00:28:20
c#实现选择排序的示例
2021-10-15 00:32:27
Android对话框AlertDialog详解
2023-06-20 01:47:19
C#实现的文件操作封装类完整实例【删除,移动,复制,重命名】
2022-09-14 20:41:14
SpringBoot整合Activiti工作流框架的使用
2022-03-02 12:32:44
Java链表(Linked List)基本原理与实现方法入门示例
2021-10-12 05:49:14
Java用户登录验证代码
2022-05-11 16:45:46
C#中静态的深入理解
2023-10-18 01:28:27
springboot maven 项目打包jar 最后名称自定义的教程
2021-08-12 00:01:11
VS2019编写C程序或者CUDA程序出现“无法启动程序,系统找不到指定的文件”问题的详细解决方法
2022-04-25 08:09:31
JAVA IDEA 打开assert 设置方式
2022-08-19 13:48:49
Android 仿QQ头像自定义截取功能
2023-05-14 00:13:21
Android AlertDialog自定义样式实现代码
2023-07-08 13:10:06
Ubuntu中为Android简单介绍硬件抽象层(HAL)
2022-10-27 21:12:45
Android TextWatcher监控EditText中的输入内容并限制其个数
2022-08-18 13:27:41
C#实现合并多张图片为GIF动态图
2022-12-13 04:16:35
C#创建安全的字典(Dictionary)存储结构
2023-03-17 22:11:51
LeetCode -- Path Sum III分析及实现方法
2022-10-16 13:41:14
Hibernate中Session增删改查操作代码详解
2022-12-25 17:14:22