【问题标题】:Send latitude and longitude to form (to be submitted to database)发送经纬度到表单(提交到数据库)
【发布时间】:2013-01-26 03:04:34
【问题描述】:

我有一个显示我当前位置的谷歌地图,当我点击地图时,会添加一个新标记,在信息窗口中显示纬度和经度。我对此很满意。

我希望将经纬度输入到我在同一页面上的表格中,其中包含有关该位置的详细信息。然后该信息将被发送到数据库。

这是javascript:

var map;
var marker2;
var infowindow2;
var infowindow;
function getLocation() 
{
if (navigator.geolocation) 
{
    navigator.geolocation.getCurrentPosition(showPosition, placeMarker, showError);
}
else
{
    x.innerHTML = "Geolocation is not supported by this browser.";
}  
}
function showPosition(position)
{
    lat2 = position.coords.latitude;
lon = position.coords.longitude;
latlon = new google.maps.LatLng(lat2, lon)
mapholder = document.getElementById('mapholder')   

var mapProp = 
{
    center: latlon, zoom: 17,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    mapTypeControl: false,
    navigationControlOptions:{style: google.maps.NavigationControlStyle.SMALL}
};

map = new google.maps.Map(document.getElementById("mapholder"),mapProp);
var marker = new google.maps.Marker({ position: latlon, map:map, title: "You are Here"});
marker.setMap(map);
infowindow2 = new google.maps.InfoWindow({ content:"You are Here!" + "<br>Click on desired location to generate latitute and longitude coordinates;" + "<br>Click 'Send' to enter Latitude and Longitude co-ordinates into form"});
infowindow2.open(map,marker);

google.maps.event.addDomListener(window, 'load', getLocation);
google.maps.event.addListener(map, 'click', function(event) 
{
    placeMarker(event.latLng);
});
}
function placeMarker(location) 
{
 if (!marker2) 
 {
     marker2 = new google.maps.Marker({ position: location, map: map, icon: 'Icon/aed4.jpg' });
 }
 else 
 {
     marker2.setPosition(location);
 }

 google.maps.event.addListener(marker2, 'click', function (event) 
 {
     document.getElementById("latbox").value = event.lat();
     document.getElementById("lngbox").value = event.lng();
 });

 infowindow = new google.maps.InfoWindow({ content: 'Latitude: ' + location.lat() + '<br>Longitude: ' + location.lng() });
 infowindow.open(map, marker2);
 infowindow2.close(map, marker2);

 google.maps.event.addDomListener(window, 'load', showPosition);
}
google.maps.event.addDomListener(window, 'load', placeMarker);
infowindow.close(map, marker2);

这是我要放置的表格:

    <div id="formlocation">
        <table class="style1">
            <tr>
                <td class="style2">
                    <asp:Label ID="buildingLbl" runat="server" Text="Building Name:"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="buildingTxt" runat="server"></asp:TextBox>
                </td>
            </tr>
            Latitude:<input size="20" id="latbox" type="text" name="lat" />
            <br />
            Longitude:<input size="20" id="lngbox" type="text" name="lng" />
            <br />

我尝试将它们放入文本框,但也无法正常工作。

另外,我能否将输入区域的信息与文本框一样发送到 SQL 中?

我以为我找到了答案 here,但不知道我做错了什么 - 希望有一个不错的简单解决方案 - 我是新手......感谢所有帮助。

我在想这个网站EXAMPLE。我将只有 1 个可以通过单击地图移动的标记,这会更改纬度和经度字段中的值。

我正在添加到目前为止我所拥有的屏幕截图,但我不能直到我有 10 个声誉...我希望坐标填充字段,因为通过单击地图移动标记。我知道我可以在信息窗口中单击“发送”以将坐标输入到表单中,但理想情况下,它会随着您通过单击地图移动标记而改变。

我希望 infoWindow 中的纬度和经度值进入表单。在我的示例中,我有两个纬度和经度字段,但那是我试图将值放入 TextBox 和输入字段。

表单底部应该有一个“提交”按钮,用于将所有信息发送到数据库 (SQL)。

希望这有助于解释我所追求的...

【问题讨论】:

  • 你有一个活生生的例子,或者你能做一个展示问题的jsfiddle吗?

标签: c# javascript asp.net google-maps


【解决方案1】:

您应该能够使用 Javascript 来填充文本框的值

类似这样的:

function showPosition(position)
{
    lat2 = position.coords.latitude;
    lon = position.coords.longitude;
    latlon = new google.maps.LatLng(lat2, lon)
    mapholder = document.getElementById('mapholder')

     fillLatLon(lat, lon);
    }

function fillLatLon(lat, lon)
{ 
     $('#latbox').val(lat);
     $('#lngbox').val(lon);
}

【讨论】:

  • 再次您好,谢谢,但是当我将上面的代码放入 showPosition 函数时,地图不会生成,但如果我将其放入 placeMarker 函数,地图将生成,并且我的 infoWindow 会打开其中的坐标它,但它们不会填充我的表单字段。还有什么建议吗?
  • 地图没有生成很奇怪,你能不能用.js调试器运行一下,看看有没有抛出异常?
  • 地图很少在 Firefox 中生成,所以我通常在 Chrome 或 IE 中打开它。这是我正在处理的原始代码link 它的 V2 所以我在翻译中丢失了一些东西......
  • 您有指向有问题的网站的链接吗?我可以把它拉起来,看看我是否注意到发生了什么奇怪的事情。
  • 这是一个大学项目 - 所以它是唯一的本地项目,抱歉。
猜你喜欢
  • 2016-03-15
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 2021-12-14
  • 2011-02-18
  • 2016-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多