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

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

相关推荐

  • C#开发Android百度地图手机应用程序(多地图展示)

    一.简介 地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰. 文件名:Demo04MultiMapView.cs 简介:介绍多MapView的使用 详述:在一个界面内,同时建立四个TextureMapView控件: 二.示例 1.运行截图 在x86模拟器中的运行效果如下: 在上一节例子的基础上,只需要再增加下面的步骤即可. 2.添加demo05_multimap.axml文件 在layout文件夹下添加该文件,将其改为

  • c#生成站点地图(SiteMapPath)文件示例程序

    复制代码 代码如下: //创建站点地图        private void CreateSiteMap(DataSet ds)        { XmlDeclaration declareation;            declareation = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);            xmlDoc.AppendChild(declareation); XmlElemen

  • 基于C# 网站地图制作

    1. 我们的网站是用C#开发的,我们采用数据库存储所有文章信息.所以我们的文章都是动态地从数据库中提取出来的.这点很不利于蜘蛛的顺藤摸瓜. 2. 这点嘛,嘿嘿,就有些勉强了.做个网站地图,可以让用户对敝网站的内容一目了然,能起到很好的导航作用. 鉴于上述原因,于是乎,俺就决定为俺地"赤兔英语网"做一个网站地图.由于Google等搜索引擎所需的网站地图必须是XML文件,所以俺决定做网页形式和XML形式两种网站地图.我们的网站是用C#开发的,当然是使用C#语言来编写俺地网站地图了,赫赫.

  • 如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)

    以下是使用js代码实现百度地图计算两地距离,代码如下所示: <script src="js/jquery-1.9.0.js" type="text/javascript" language="javascript"></script> <script language="javascript" type="text/javascript" src="js/area.j

  • c#使用windows服务更新站点地图的详细示例

    由于公司平台访问人数逐渐增多,公司项目的数据库已经几次出现宕机现象.为减轻数据库压力,我上个月对公司项目做了下调整.把新闻板块提取出来单独一个站点,单独一个数据库.减少了主站点和数据库的负担和压力. 但放在线上一个月,新闻新的发布数量最少已经有500篇左右.百度只收录了70个左右,于是想到可能是没有站点地图造成的.但怎么定时更新站点地图呢? 我尝试使用windows服务来定时更新站点地图. 首先需要了解下几个问题. 1.百度收录的站点地图(sitemap)的格式.详情请查看该链接:查看 目前我只

  • c#调用arcgis地图rest服务示例详解(arcgis地图输出)

    1.使用步骤 1)构建请求网址 A.确定端点:每个GIS服务都有一个端点.例如,ArcGIS Server上Demographics文件夹下名为ESRI_Census_USA的一个地图服务sampleserver1.arcgisonline.com的端点为:http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer. B.确定操作:不同地理信息系统服务支持不同的

  • C#生成sitemap站点地图的方法

    Sitemaps是Google的一个和网站管理员相关的工具,有点象BLOG的RSS功能,是一个方便自己的服务,如果大家都采用了这种方式提交自己的更新的话,Google就再也不用派出那么多爬虫辛辛苦苦的到处乱窜了,任何一个站点,只要有更新,便会自动"通知"Google,方便Google进行索引. 好像最近BAIDU也开始支持XML格式的sitemap的站点地图了. 目前网络上有很多免费的生成sitemap站点地图的工具,使用起来也比较方便.其原理就是抓取你指定的页面,获取页面上所有的链接

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

    对谷歌地图操作使用的是WebBrowser控件,通过对javascript的操作来实现对谷歌地图的各种操作,所以首先要创建一个html文件,并赋给WebBrowser的URl: <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <meta http-equiv=&

  • windows系统下,如何在C#程序中自动安装字体

    1.1.使用代码安装字体 注意:安装字体时,需要windows的管理员权限. [DllImport("kernel32.dll", SetLastError = true)] public static extern int WriteProfileString(string lpszSection, string lpszKeyName, string lpszString); [DllImport("gdi32")] public static extern i

  • 微信小程序中button去除默认的边框实例代码

    微信小程序中button去除默认的边框的实现方法如下所示: button { position:relative; display:block; margin-left:auto; margin-right:auto; padding-left:14px; padding-right:14px; box-sizing:border-box; font-size:18px; text-align:center; text-decoration:none; line-height:2.5555555

  • Java程序中实现调用Python脚本的方法详解

    本文实例讲述了Java程序中实现调用Python脚本的方法.分享给大家供大家参考,具体如下: 在程序开发中,有时候需要Java程序中调用相关Python脚本,以下内容记录了先关步骤和可能出现问题的解决办法. 1.在Eclipse中新建Maven工程: 2.pom.xml文件中添加如下依赖包之后update maven工程: <dependency> <groupId>org.python</groupId> <artifactId>jython</ar

  • Windows下使用go语言写程序安装配置实例

    linux下,google的go语言安装起来很方便,用起来也很爽,几行代码就可以实现很强大的功能. 现在的问题是我想在windows下玩-- 其实windows下也不麻烦,具体见下文. 一.安装go语言: 1.安装MinGW(https://bitbucket.org/jpoirier/go_mingw/downloads) 2.下载源码 进入C:\MinGW,双击mintty开启终端窗口: 执行"hg clone -u release https://go.googlecode.com/hg/

  • 微信小程序中使用 async/await的方法实例分析

    本文实例讲述了微信小程序中使用 async await的方法.分享给大家供大家参考,具体如下: 微信小程序中有大量接口是异步调用,比如 wx.login().wx.request().wx.getUserInfo() 等,都是使用一个对象作为参数,并定义了 success().fail() 和 complete() 作为异步调用不同情况下的回调. 但是,以回调的方式来写程序,真的很伤,如果有一个过程需要依次干这些事情: wx.getStorage() 获取缓存数据,检查登录状态 wx.getSe

  • 微信小程序中正确使用地图的方法实例

    目录 前言 1. 准备 2. 实战 2.1 配置小程序权限 2.2 封装工具函数 2.2.1 全局函数与变量 2.2.2 工具函数 2.3 跳转选址页面前的处理 2.4 跳转后的处理 2.4.1 页面初始化 2.4.2 搜索功能实现 2.4.3 下滑到底获取更多 2.4.4 提交数据 2.4.5 切换城市 总结 前言 今天是我的小兄弟(微信小程序方面)在工作中遇到的一个场景--选择某个位置周围的学校,感觉很有用,就让他给大家分享一下. 这次想分享一下关于微信小程序中选择全国中的一个学校和地址的方

  • Ruby中的类Google Map/Reduce框架Skynet介绍

    Skynet是一个很响亮的名字,因为它是阿诺施瓦辛格主演的经典系列电影<终结者>里面的统治人类的超级计算机网络.不过本文的Skynet没这么恐怖,它是一个ruby版本的Google Map/Reduce框架的名字而已. Google的Map/Reduce框架实在太有名气了,他可以把一个任务切分为很多份,交给n台计算机并行执行,返回的结果再并行的归并,最后得到运算的结果.据说Google一个搜索结果会Map到7000台服务器并行执行,这么多么可怕的分布式运算能力阿!有了Map/Reduce,程序

  • python应用程序在windows下不出现cmd窗口的办法

    python写的GTK程序,会有这样一个怪现象,本来在cmd下用 python xxx.py 启动,还好好的,但是用py2exe编译以后,再用subprocess调用命令行程序的时候,就发现一个黑乎乎的cmd窗口跳出来了,特别难看,要消除它其实也还比较容易,但是要使用startupinfo这个windows only的参数,以下代码是linux和windows通用的例子: 复制代码 代码如下: if os.name == 'nt':    startupinfo = subprocess.STA

  • Windows下用py2exe将Python程序打包成exe程序的教程

    py2exe在sourceforge 的下载只支持到2.7. 针对python3.0+的版本,需要自己编译. 1.下载源码 svn checkout svn://svn.code.sf.net/p/py2exe/svn/trunk py2exe-svn 2.编译环境 这里使用的是vs2014. 3.安装 进入py2exe-3 python setup.py install 这里会进行编译.安装. 此外,python默认使用的是vs9,针对vs2014,需要改下文件: 复制代码 代码如下: Lib

随机推荐