首页 文章

如何将lat / long值从google maps infowindow传递给javascript函数?

提问于
浏览
0

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

Screenshot

我想要做的是将位置的lat / lon值传递给javascript函数,该函数获取方向并在 Map 上绘制它们 . 我的想法是将它们作为formString的一部分包含在内:

<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”属性 .

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

1 回答

  • 2

    将您的HTML更改为just

    <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
    

相关问题