asp.Net采用Gmap实现google map定位

本文介绍了一个基于WebGIS技术实现的车辆实时位置监控系统,详细阐述了系统的核心组件、数据交互流程以及地图展示功能。通过使用ASP.NET MVC框架结合Google Maps API,系统实现了车辆位置的实时获取、地图标记显示以及地图点击事件响应等功能,为车辆管理提供了高效直观的解决方案。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text; using Subgurim.Controles; using System.Web.Security; using Tuff; using System.Drawing; public partial class Action_CarLastLocation : System.Web.UI.Page { SysUser sysUser = null; protected void Page_Init(object sender, EventArgs e) { // 用户登录信息 sysUser = (SysUser)Session["SysUser"]; GMap1.Key = WebPublic.GetGoogleMarAPIKey(); } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { GMap1.addControl(new GControl(GControl.preBuilt.GOverviewMapControl)); GMap1.addGMapUI(new GMapUI()); GMap1.GZoom = 4; //缩放等级 GMap1.Width = 590; //控件宽度 GMap1.Height = 600; //控件高度 GMap1.setCenter(new GLatLng(33.00, 106.00)); ObjectDataSourceCarData.SelectParameters["SSGSBH"].DefaultValue = sysUser.Corp.ID; ObjectDataSourceCarData.SelectParameters["STIME"].DefaultValue = null; ObjectDataSourceCarData.SelectParameters["ETIME"].DefaultValue = null; ObjectDataSourceCarData.SelectParameters["SN"].DefaultValue = null; ASPxGridViewDeviceList.FocusedRowIndex = -1; } } // 加载Map protected void ASPxGridViewDeviceList_HtmlRowCreated(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e) { if (e.RowType == DevExpress.Web.ASPxGridView.GridViewRowType.Data) { if (e.VisibleIndex != -1 && e.GetValue("LAT").ToString() != "" && e.GetValue("LON").ToString() != "") { double plat = double.Parse(e.GetValue("LAT").ToString()); //得到经度 if (plat == 0.00) { plat = 33.00; } double plon = double.Parse(e.GetValue("LON").ToString()); //得到纬度 if (plon == 0.00) { plon = 106.00; } string address = e.GetValue("ADDRESS").ToString(); HiddenFieldMQSSDZ.Value = address; string registercity = e.GetValue("CLSSQY").ToString(); //得到注册地址 string[] citylist = registercity.Split('/'); string nowcity = citylist[1]; //注册城市 GMarker marker = new GMarker(new GLatLng(plat, plon)); //创建坐标 GLatLng latlon = new GLatLng(plat, plon); PopupMarkerOptions popupMarkerOptions = new PopupMarkerOptions(Color.White, Color.RoyalBlue); //浮窗样式 PopupMarker popupMarker = new PopupMarker(latlon, "" + e.GetValue("CLCPH") + "", popupMarkerOptions); //定义浮窗 GMap1.Add(popupMarker); //添加到map GMap1.setCenter(new GLatLng(plat, plon)); //设置中心点 } } } protected void ASPxGridViewDeviceList_FocusedRowChanged(object sender, EventArgs e) { if (Page.IsPostBack && ASPxGridViewDeviceList.FocusedRowIndex != -1) { GLatLng glatlng = new GLatLng(); string zbwd = ASPxGridViewDeviceList.GetDataRow(ASPxGridViewDeviceList.FocusedRowIndex)["LAT"].ToString(); string zbjd = ASPxGridViewDeviceList.GetDataRow(ASPxGridViewDeviceList.FocusedRowIndex)["LON"].ToString(); if (zbwd != "") { if (Math.Abs(double.Parse(zbwd)) < 90) { glatlng.lat = double.Parse(zbwd); } } if (zbjd != "") { if (Math.Abs(double.Parse(zbjd)) < 180) { glatlng.lng = double.Parse(zbjd); } } GMap1.setCenter(glatlng, 14); } } //地图点击事件 protected string GMap1_MarkerClick(object s, GAjaxServerEventArgs e) { LabelMQSSDZ.Text = HiddenFieldMQSSDZ.Value; return e.map; } }
简介<br><br>很多人都知道Google Map,其实,Google为我们自己开发应用程序提供了丰富的API,我们只要具备一些JavaScript的知识,就完全可以利用它们。但是,对于我来说,在ASP.NET页面中使用JavaScript来调用Google Map的API有一定难度,尤其是利用服务器端函数来动态画出Google Map。例如,我想从SQL Server中读取经纬度信息,然后在Google Map插入一个点。如果熟悉AJAX的话,很快就能得出答案。我们必须用JavaScript调用ASP.NET服务器端函数,利用得到的数据来绘制Google Map。简单吧?其实,对于我来说并非如此。因此,我决定开发一个用户控件来处理JavaScript代码,这样,我就能集中精力于服务器端函数了。<br><br><br><br>特点<br><br>1.不需要JavaScript知识就能绘制Google Maps,只需在相应页面加入自定义控件即可。<br><br>2.使用AJAX调用来获取服务器端数据。<br><br>3.提供最优越的性能表现。<br><br><br><br>如何使用<br><br>在这里,我并不想解释我是如何创建该控件的。我只要教你如何使用它。<br><br><br><br>系统需求<br><br>1.Visual Studio 2005或更高版本<br><br>2.Microsoft ASP.NET AJAX Extensions支持<br><br>3.Internet Explorer 7.0或Mozilla Firefox 2.x<br><br><br><br>你只需完成以下几步:<br><br>1.新建一个ASP.NET AJAX-Enabled Website。<br><br>2.将源代码中App_Code文件夹、GoogleMapForASPNet.ascx、GoogleMapForASPNet.ascx.cs,GService.asmx复制到你的ASP.NET应用程序下。<br><br>3.保证你的网站支持AJAX技术。<br><br>4.打开Default.aspx(或任何你想加入Google Map的位置),将该自定义控件拖放至相应位置并编译,这样就实现了最简单的带有Google MapASP.NET网页。<br><br>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值