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

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; public partial class Action_CarWarnLocation : System.Web.UI.Page { SysUser sysUser = null; GetLocationWebReference.GetLocation getlocation = new GetLocationWebReference.GetLocation(); protected void Page_Init(object sender, EventArgs e) { // 用户登录信息 sysUser = (SysUser)Session["SysUser"]; } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { GMap1.Key = WebPublic.GetGoogleMarAPIKey(); GMap1.addControl(new GControl(GControl.preBuilt.GOverviewMapControl)); GMap1.addControl(new GControl(GControl.preBuilt.LargeMapControl)); GMap1.addControl(new GControl(GControl.preBuilt.ScaleControl)); GMap1.addControl(new GControl(GControl.preBuilt.NavLabelControl)); GMap1.enableGoogleBar = true; GMap1.Language = "ZH-CN"; GMap1.GZoom = 10; GMap1.Width = 590; GMap1.Height = 550; BingDeviceMap();//得到当前应用的所有设备坐标 } } //得到当前应用的所有设备坐标 public void BingDeviceMap() { try { DataSetCustomer.CustomerInfoListDataTable dt = new DataSetCustomer.CustomerInfoListDataTable(); DataSetCustomerTableAdapters.CustomerInfoListTableAdapter ta = new DataSetCustomerTableAdapters.CustomerInfoListTableAdapter(); DataSetDeviceTableAdapters.P_QUERYCARTableAdapter taa = new DataSetDeviceTableAdapters.P_QUERYCARTableAdapter(); DataSetDevice.P_QUERYCARDataTable Cardt = new DataSetDevice.P_QUERYCARDataTable(); DataTable dtNow = getlocation.GeDeviceLocation(null, null, null, WebPublic.GetAppCheckID());//从接活获取设备数据 object obj; taa.Fill(Cardt, string.Empty, string.Empty, string.Empty, string.Empty, out obj); if (dtNow.Rows.Count > 0 || Cardt.Rows.Count > 0) //数据是否表为空判断 { foreach (DataRow datarow in dtNow.Rows) { foreach (DataRow drcar in Cardt.Rows) { if (sysUser.GetNumberByPhone(datarow["SERIANUMBER"].ToString()) == sysUser.Number.ToString()) { string s = sysUser.GetNumberByPhone(datarow["SERIANUMBER"].ToString()); if (s == drcar["CLDQSSYHBH"].ToString()) { string stat = null; foreach (DataRow datarows in dtNow.Rows) { double plat = double.Parse(datarows["LATITUDE"].ToString()); //得到经度 double plon = double.Parse(datarows["LONGITUDE"].ToString()); //得到纬度 GeoCode dc = GMap1.getGeoCodeRequest(new GLatLng(plat, plon)); //解析地址 string cityname = dc.Placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName; //获取地址 string detailaddress = dc.Placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName; //实时详细地址 string sn = datarow["SERIANUMBER"].ToString(); // 得到设备序列号 string number = sysUser.GetNumberByPhone(sn); //得到用户编号 string registercity = sysUser.GetSSQYByNumber(number);//得到用户注册区域 string[] citylist = registercity.Split('/'); string nowcity = citylist[1]; if (!nowcity.Contains(cityname) && !cityname.Contains(nowcity)) //如果符合预警条件 { GMarker marker = new GMarker(new GLatLng(plat, plon)); //创建坐标 GInfoWindow window = new GInfoWindow(marker, "所属用户:" + sysUser.GetNameByNumber(datarows["SERIANUMBER"].ToString()) + "</br>车牌号:" + drcar["CLCPH"].ToString() + "</br>注册所属区域:" + nowcity + "</br>当前所在区域:" + cityname + "</br>当前详细地址:" + detailaddress + "", true);// 添加地图标注 GMap1.addInfoWindow(window); //装载地图 //设置中心点 if (stat == null) { GMap1.setCenter(new GLatLng(plat, plon)); stat = "1"; } } } } } } } } else { GMap1.setCenter(new GLatLng(39.964103, 116.455));// 默认中心点 WebAction.AjaxMessageBox(this, "Error", "无预警车辆!"); } } catch (Exception ex) { WebAction.AjaxMessageBox(this, "ExiD", "拉取数据失败!\n" + ex.Message); } } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简介<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>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值