如何将经纬度利用Google Map API显示C# VS2005 Sample Code

原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code

日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上,这个做法有两种,最简单的就是直接传值到Google Maps上.

 

举例来说,当我们知道经纬度后,只要将数据套到以下网址即可.

http://maps.google.com/maps?q=25.048346%2c121.516396

在参数q=后面,就可以加上经纬度了.

25.048346是Latitude纬度

%2c是空格

121.516396就是Longitude经度了.

范例画面:

 

而另一种做法就比这个复杂一点,要使用Google API来做,首先,要使用google API就必需要有google的帐号,没帐号是无法申请的,当有google的帐号后,就可以到http: //code.google.com/apis/maps/signup.html开始申请了.

最 下方My web site URL就输入各位的URL啰,如果输入的与执行google map api的URL不同,那就无法执行了.所以这个URL务必输入正确, 输入正确的URL并将上方的CheckBox打勾后,就可以按Generate API Key了,如果已经登入GOOGLE的,就不会再跳登入画面,之后就会跳到另一个画面,上面就有Key及Example Code了,当有了这些,就可以开始自己写Code了.

 

基本上,因为主要是Demo用的,所以设计介面很简单.

上面就一个DropDownList,因为先前的范例资料的关系,先手动在ITEM上加上1跟2.

而下方的地图,就跟申请API时的Example Code一样. 原始码如下:

 

 <%@ Page Language= "C#" AutoEventWireup= "true" CodeFile= "Default.aspx.cs" Inherits= "_Default" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

 <html xmlns= "http://www.w3.org/1999/xhtml" >
 <head runat= "server" >
     <title>GPS 位置地图</title>
     <script src= "http://maps.google.com/maps?file=api&amp;v=2&amp;key=输入你的Key"
         type= "text/javascript" ></script>

     <script src= "http://www.google.com/uds/api?file=uds.js&v=1.0&key=输入你的Key"
         type= "text/javascript" ></script>

     <script src= "http://www.google.com/uds/solutions/localsearch/gmlocalsearch.js" type= "text/javascript" ></script>

     <style type= "text/css" > @import url( "http://www.google.com/uds/css/gsearch.css" );
     @import url( "http://www.google.com/uds/solutions/localsearch/gmlocalsearch.css" );
     </style>

     <script type= "text/javascript" >
     //<![CDATA[
     function load(x,y,LocationName) {
       if (GBrowserIsCompatible()) {
         var map = new GMap2(document.getElementById( "map" ));
     var point = new GLatLng(x,y);
         map.setCenter(point, 16);
     map.addOverlay( new GMarker(point));
     map.addControl( new GLargeMapControl());
     map.addControl( new GMapTypeControl());
     map.addControl( new GScaleControl());
     var lsc = new google.maps.LocalSearch();
     map.addControl( new google.maps.LocalSearch() , new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,20)));
     map.openInfoWindowHtml (map.getCenter(), LocationName);
       }
     }
     //]]>
     </script>
 </head>
 <body id= "MainBody" runat= "server" >
     <form id= "form1" runat= "server" >
     <div>
         <asp:DropDownList ID= "ddl_Location" runat= "server" AutoPostBack= "True" OnSelectedIndexChanged= "ddl_Location_SelectedIndexChanged"
             Width= "500px" >
             <asp:ListItem>1</asp:ListItem>
             <asp:ListItem Value= "2" >2</asp:ListItem>
         </asp:DropDownList><br />
         <br />
         <div id= "map" style= "width: 500px; height: 400px" >
         </div>

     </div>
     </form>
 </body>
 </html> 

 

 

 

只要将"输入你的Key"的地方置换为你在Google MAP API申请到的Key即可.

 

    protected void Page_Load( object sender, EventArgs e)
     {
         if (!IsPostBack)
         {
             if (Request.QueryString.HasKeys())
             {
                 string longitude = Request.QueryString.Get( "lon" );
                 string latitude = Request.QueryString.Get( "lat" );
                 string LN = Request.QueryString.Get(Server.UrlDecode( "LN" ));
                 this .MainBody.Attributes.Add( "onload" , "load(" + longitude + "," + latitude + ",'" + LN + "')" );
             }
             else
             {
                 DataTable dt = GetLocation(ddl_Location.SelectedValue);
                 if (dt.Rows.Count > 0)
                 {
                     DataRow dr = dt.Rows[0];
                     this .MainBody.Attributes.Add( "onload" , "load(" + dr[ "Latitude" ].ToString() + "," + dr[ "Longitude" ].ToString() + ",'" + dr[ "updtime" ].ToString() + "')" );
                 }
             }
         }
     }

     protected void ddl_Location_SelectedIndexChanged( object sender, EventArgs e)
     {
         try
         {
             DataTable dt = GetLocation(ddl_Location.SelectedValue);
             if (dt.Rows.Count > 0)
             {
                 DataRow dr = dt.Rows[0];
                 this .MainBody.Attributes.Add( "onload" , "load(" + dr[ "Latitude" ].ToString() + "," + dr[ "Longitude" ].ToString() + ",'" + dr[ "updtime" ].ToString() + "')" );
             }
         }
         catch (Exception ex)
         {
             Response.Write(ex.Message);
         }

     }

     private DataTable GetLocation( string UID)
     {
         try
         {
             string strconn = "Data Source=localhost;Initial Catalog=GPSDB;User Id=GPSUser;Password=gpsuser;" ;
             SqlConnection conn = new SqlConnection(strconn);
             string strcmd = "select Latitude,Longitude,UpdTime from GPSDB..gpstrace where UID=@UID" ;
             SqlCommand cmd = new SqlCommand(strcmd, conn);
             cmd.Parameters.AddWithValue( "@UID" , UID);
             SqlDataAdapter da = new SqlDataAdapter(cmd);
             DataTable dt= new DataTable();
             da.Fill(dt);
             return dt;
         }
         catch (Exception ex)
         {
             throw new Exception(ex.Message);
         }
     } 

 

 

 

如此一来,就大功告成了,但或许有些人会有些遗问,那么MAP上,可以自订一些东西,例如不给搜寻列,这都是可以做到的,可以参考Google Map API Examples ,这里就有很多详细的说明.

 

感觉起来,GPS定位的想法部份,好像到此就没了,但在这过程中也发现到,其实Google Map有出Mobile版 的,而它的定位可不只是局限在GPS卫星讯号,而是可以用手机的讯号去定位,也就是说,他是透过手机与基地台之间的传输来计算出所在位置,这样就可以不受 到手机没有GPS功能模组或收不到卫星讯号所限制,这个概念其实也不算新,记得几年前的Run!PC杂志上就有篇文章是在介绍这个的,采用的技术是 Java.

 

不过不管如何,可以预见的是,这个的应用会愈来愈多元,谁说未来还要自己去用电脑下载图资再更新到自己的GPS装置上,装置上的地图永远会是最新的,加上Street View,也不用去看那电脑画出来的3D的道路图了,或许3G或无线上网的普及,这些运用将会更广泛.

 

参考资料:

Google Map API Examples

Google Map Mobile

 

原始码: GPSMap.zip

 

时间: 2024-11-02 08:42:57

如何将经纬度利用Google Map API显示C# VS2005 Sample Code的相关文章

利用Google Map API在BLOG上显示自己的Google Map

当当当当-大家请看下面的链接,哈哈,是不是看到是一小淫僧,HOO-http://www.misuisui.com/google_map.htm哈哈,好玩吧-是不是也想搞一个呢?Follow Me~  第一步去 http://www.google.com/apis/maps/ 申请一个 Google Maps API key ,当然,你得有顶级域名才行...  乱申请的你如果不放到你这个域名下,那这个就根本用不了...Google会给您一段代码,可要保存好哦- 第二步把 http://www.mi

android map如何获得Google Map API key

首先要做的是获取一个MD5 key(当然,他是通过JDK的keytool工具(keytool.exe)实现的) 1.在这里,主要有两方面的工作 keytool.debug.keystore 2.首先,找到debug.keystore!(进入Eclipse开发环境,然后选择Window-->Preferences-->Android-->Build,这时候我们可以看到界面中的Default debug keystore,它后面方框中的内容就是debug.keystore的路径).在此,我们

Google Map Api和GOOGLE Search Api整合实现代码_javascript技巧

         将GOOGLE MAP API 和 GOOGLE Search API 进行整合,我用面向对象的方式写了一个类,通过传一个经纬度进去,自动通过GOOGLE LOCAL SEARCH获取附近的相关信息.比如餐厅.景点等,反过来标到地图上,并可在任意容器内显示. 下面是源码: 复制代码 代码如下: /* *Author:karry *Version:1.0 *Time:2008-12-01 *KMapSearch 类 *把GOOGLE MAP 和LocalSearch结合.只需要传

基于google map api开发web和google earth的KML地标插件

KML文件很好做,在你的google earth(以下简称GE)中选择你自己的或是别人的marker或layer,就可以保存成静态的地标或图层信息(kmz或kml格式),发送给你的朋友,用他的GE打开你的文件就可以看到你所标注的marker信息. 这些相关的文章让我迷失了好一段时间,不过,我想要的是动态的地标.类似于EEMAP那样的GE插件.下面我将讲述它的工作原理和制做方法. 先说几个概念,google map api是基于javascript+xml等技术实现的,另一款产品google ea

google map api v3 文字地标(labeledmarker)如何实现

问题描述 google map api v3 文字地标(labeledmarker)如何实现 google map默认的标示Marker,只能使用图片不能使用文字,label属性也只能显示首字符,怎么将一行文字显示在图标下边呢?请指教 解决方案 google map api v3Google Map API v3google map api v3 解决方案二: http://bbs.csdn.net/topics/380244476

google map api 简单地图定位实例

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-

vc6 c++ mfc想利用googlr map api,

问题描述 vc6 c++ mfc想利用googlr map api, vc6 c++,想利用googlr map api,用什么框架好?目前用的mfc.cdialog类界面,利用cwebbrowser2控件如何调用javascript中的函数,并将变量传递至js的函数中?另外用这个控件怎么打开相对路径下的html文件? 解决方案 参考这个例子:http://download.csdn.net/detail/gaoxiangky/7347535 解决方案二: webbrowser支持js和c++互

google map api 类似安居客的的地图找房查询效果

问题描述 google map api 类似安居客的的地图找房查询效果 解决方案 google不是被墙了吗 现在大家应该都在用百度的吧

jquery与google map api结合使用 控件,监听器_jquery

Google Maps JavaScript. API可以让您在自己的网页上使用Google地图.在使用API之前,您应该先申请一 个API key,申请API key请到:http://code.google.com/apis/maps/signup.html.这里假设你获取到的key是:ABQIAA. 关于jquery的获取不再此处累赘,网上有许多关于jquery的介绍. 接着我们就使用JQuery和Google Maps JavaScript. API来结合表现一下google map的有