让我解释一下......我试图让用户使用Google Maps v3 API在一个页面上确认他们的位置。我想保存并将用户的位置变量(纬度和经度)发送到要用用户填写的表单提交的下一页。最后,表单将提交给数据库。
我相信我想要保存的变量如下:
var pos = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
该脚本位于标题中的Site.Master中。
创建表单并将其发送到下一页是否是实现此目的的最简单方法?
Google地图页面:
<%@ Page Title="Roadside Assistance: Location" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="RoadsideLoc.aspx.cs" Inherits="Final_Project.RoadsideLoc" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeaderContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div style="text-align:center">
<h1>Is this the location of your vehicle?</h1>
</div>
<div id="map-canvas" style="height:350px">
</div>
<div data-role="controlgroup" data-type="horizontal" style="text-align:center" runat="server">
<a href="Roadside.aspx?" data-role="button">Yes</a>
<a href="RoadsideLocNO.aspx" data-role="button">No</a>
</div>
</asp:Content>
答案 0 :(得分:0)
您可以使用localStorage
或sessionStorage
存储lat / lng,然后在需要时重新创建LatLng对象。
或者,您可以使用cookie在客户端存储数据。
答案 1 :(得分:0)
您可以通过应用多种方法来实现这一目标。
用户确认其位置后,请执行
之类的操作var lat = position.coords.latitude, long = position.coords.longitude;
window.location = "sitemaster2.aspx?latitude=" + lat + "&longitude=" + long;
这样,您就可以在第二页中访问此坐标并将其附加到所需的表单。
在离开页面之前,在当前URL附加坐标。您可以使用history.pushState
执行此操作。当您到达表单时,搜索您的条目的历史记录并从URL中获取坐标。
使用坐标设置一个cookie,然后将它们放回第二页。
异步加载一个asp文件,该文件设置一个包含coords的会话。然后通过检查会话来获取它们。
将coords置于隐藏的POST表单中,并在按下确认按钮时让用户实际提交表单。
或者根本不更改页面。您可以将两个页面合二为一。将主体分成两部分,或者将每个部分显示为提交必要数据的步骤。