javascript - 如何将纬度/经度值从谷歌地图信息窗口传递到 JavaScript 函数?

标签 javascript forms google-maps google-maps-api-3

我有一个相对简单的 Google map 实现。它从浏览器请求用户的地理位置信息,并 (a) 对它进行地理编码,(b) 从数据库中提取 N 个最近的位置记录(目前 25 英里内最多 20 个位置),(c) 将用户的位置和位置记录绘制为标记,有关位置的信息(地址等)存储为 contentString,以便在信息窗口中查看。

Screenshot

我想要做的是将位置的纬度/经度值传递给 JavaScript 函数,该函数获取方向并将其绘制在 map 上。我的想法是将它们作为表单包含在 contentString 中:

<form>
<input type="hidden" value="' + location[i].latitude + ' name="sitelat"/>
<input type="hidden" value="' + location[i].longitude + ' name="sitelon"/>
<input type="button" onClick="GetDirs()" value="Directions">
</form>

将在函数中检索:

function GetDirs()
{
    var userlatlng = new google.maps.LatLng(userlat, userlon)

    sitelat = document.getElementById(sitelat);
    sitelon = document.getElementById(sitelon);

    var sitelatlng = new google.maps.LatLng(sitelat, sitelon)

    // continue to get directions from userlatlng to sitelatlng

} //GetDirs

数据库中有 700 条记录,其中任意 20 条记录可以在任何给定时间填充到 map 上,所有记录的 contentString 中都具有“sitelat”和“sitelon”属性。

我的心理障碍是如何编写一个从正确的信息窗口检索纬度/经度的函数。我错过了什么?

最佳答案

将您的 html 更改为

<button 
  onClick="GetDirs(' + location[i].latitude + ', ' + location[i].longitude + ')"
>Directions</button>

你现在的功能就是

function GetDirs(sitelat,sitelon)
{
    var userlatlng = new google.maps.LatLng(userlat, userlon); 
    var sitelatlng = new google.maps.LatLng(sitelat, sitelon);

    // continue to get directions from userlatlng to sitelatlng

} //GetDirs

关于javascript - 如何将纬度/经度值从谷歌地图信息窗口传递到 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22387698/

相关文章:

javascript - 将自定义值推送到 Google map 标记

javascript - 使用 Javascript 在 Firefox 中打印 PDF

javascript - 如何在 mocha-chai 测试套件中顺序运行两个描述 block

javascript - PHP 邮件表单不会将输入发送到电子邮件

ruby-on-rails-3 - ActiveAdmin - 将本地人传递给表单

javascript - 如何使用 Meteor 中的信息窗口按钮触发模式/弹出窗口?

javascript - 将线条附加到 D3 条形图 - 绝对没有任何反应

forms - 如何在 Excel 2016 中安装日期选择器表单控件

javascript - 验证表单中的多个字段

delphi - 如何使用 TIdHTTP 获取 Google 静态 map ?