博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何将经纬度利用Google Map API显示C# VS2005 Sample Code
阅读量:5921 次
发布时间:2019-06-19

本文共 2941 字,大约阅读时间需要 9 分钟。

原文 

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

 

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

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

25.048346是Latitude纬度

%2c是空格

121.516396就是Longitude经度了.

范例画面:

 

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

最 下方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" %>    GPS 位置地图        
1
2

 

 

 

只要将"输入你的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上,可以自订一些东西,例如不给搜寻列,这都是可以做到的,可以参考 ,这里就有很多详细的说明.

 

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

 

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

 

参考资料:

 

原始码:

 

转载地址:http://swivx.baihongyu.com/

你可能感兴趣的文章
thinkphp G方法的华丽升级
查看>>
simhash进行文本查重 Simhash算法原理和网页查重应用
查看>>
python的异常机制使用技巧
查看>>
高速幂取余算法
查看>>
linux c获取mac
查看>>
Learning Lua Programming (2) Lua编程基础
查看>>
C# read weather xml
查看>>
全局变量如果不初始化,则默认为0,编译时编译器不提示“变量未初始化”。...
查看>>
HTML学记笔记
查看>>
CLR线程概览(一)
查看>>
cocos2dx游戏--欢欢英雄传说--添加血条
查看>>
WPF自定义控件(二)の重写原生控件样式模板
查看>>
【转】Flash:同志们,这些知识点你们知道多少?(一些必备的Flash开发知识点)...
查看>>
The N-dimensional array (ndarray)¶
查看>>
3. Spring Boot热部署【从零开始学Spring Boot】
查看>>
JpaSpecificationExecutor接口与自定义 Repository 方法&#x60;
查看>>
Java10来了,来看看它一同发布的全新JIT编译器
查看>>
今年双11,飞猪的“非OTA”之路走得怎么样了?
查看>>
苹果下架APP数量暴增超万款,看看你常用的在列吗?
查看>>
南非总统顾问一句想试试 马云当真了 做了件事你都想不到
查看>>