【问题标题】:How to pass lat / long values from a google maps infowindow to a javascript function?如何将 lat / long 值从谷歌地图信息窗口传递给 javascript 函数?
【发布时间】:2014-03-13 18:27:52
【问题描述】:

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

Screenshot

我想要做的是将位置的纬度/经度值传递给一个 javascript 函数,该函数获取方向并将它们绘制在地图上。我的想法是将它们作为一种形式包含在 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 条可以在任何给定时间填充到地图上,所有这些记录在 contentString 中都有 'sitelat' 和 'sitelon' 属性。

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

【问题讨论】:

  • 你甚至不需要表单,只需创建按钮并将 lat 和 lon 参数传递给 onClick 函数

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


【解决方案1】:

将您的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 2014-03-16
    • 2016-07-10
    • 2013-05-18
    相关资源
    最近更新 更多