【问题标题】:Leaflet, panTo map location when link is clicked?点击链接时的传单,panTo地图位置?
【发布时间】:2014-02-10 14:50:20
【问题描述】:

有人知道传单吗?我正在尝试创建一个功能,您可以在其中单击链接并将地图转到某个位置。我尝试在“值”属性下放置一个点域值,如下所示:

<a href="#" class="marker" value="{{ mymodel.pt }}">Link</a>

然后我想做这样的事情,但它不起作用:

$("#dialog").on("click", ".marker", function(e) {
      e.preventDefault();
      map.panTo([$(this).attr("value")]);  
});

有任何想法或替代解决方案吗?谢谢!

【问题讨论】:

    标签: javascript jquery django leaflet


    【解决方案1】:

    Leaflet 需要一个 LatLng 对象或至少一个二元素数组作为 panTo 函数的第一个参数(请参阅:http://leafletjs.com/reference.html#latlng

    我不确定 'mymodel.pt' 包含什么,但请确保您最终得到类似这样的实际值:

    <a href="#" class="marker" value="[50,50]">Link</a>
    

    并稍微改变一下JS:

    ...
      map.panTo($(this).attr("value"));  
    ...
    

    【讨论】:

    • 感谢您的回答。 mymodel.pt 包含一个 Django 点域,它应该包含该格式的坐标。但是我也尝试过按照您描述的方式编写简单的测试值,但我似乎什么也没做。我是 js/jquery 的初学者,但我想知道我是否以错误的方式调用“地图”..
    • 感谢您的澄清!只需确保:'map' 指向传单地图对象,对吗?回调方法是否有效(可能会在那里放置一个 console.log)?
    • 是的。该地图位于文档就绪函数下,如下所示: var map = L.map('map').setView([xx.xxxx, xx.xxxx], 15);就像他们在传单主页上描述的那样。那部分工作正常。但是这个脚本不在同一个文件准备功能下,这可能是问题吗?它没有找到变量'map'?
    • 这是最可能的解释,不同的范围。尝试在地图初始化后的某处添加 jQuery 调用。另外:回调函数中的 console.log(map) 告诉你浏览器认为“map”变量包含什么。
    • 好的!是否可以在不以某种方式移动函数的情况下获取 var 映射(在不同的范围内)?我将不得不调查 console.log 的事情。我以前没有使用过。再次感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2015-06-10
    • 2021-08-26
    相关资源
    最近更新 更多