javascript - flyTo() Leaflet - 我如何使用 onclick 监听器在我的地图上飞行
问题描述
我被困在我的代码中。
我正在研究交互式地图,我需要在有问题的坐标上飞行。我怎么知道问题何时处于活动状态,我已经检查了数据的状态,并根据对象的状态将它们放在 Leaflet 的不同层中以在地图上显示。然后我把它们放在我页面上地图正下方的小表格中,其中有具有唯一类、数据经度和数据纬度变量的元素,这些变量总结了我们有多少问题以及它们在哪里。
现在,这就是我的问题所在。我是 JS 和 JQuery 的新手,所以我需要知道如何在点击时访问元素属性,所以当我点击它时,它会执行一个函数 flyTo(),它会存储一个数据经度 + 数据纬度属性到那个功能。
这是一个带有一些 ID 的小代码。
这就是我在 JS 中创建元素的方式:
var newOption = host_name;
var uniqID = brojac;
div.innerHTML += '<td class="' + uniqID + '"value="' + newOption + '" data-longitude= "' + longitude + '" data-latitude="' + latitude + '">' + newOption + '</td>';
这就是我在 HTML 文档中创建表格的方式:
<table id="tablic" style="width:100%">
<caption>Aktivni problemi su na sljedećim DSLAM-ovima</caption>
<tr id="red" itemprop='koordinate'></tr>
</table>
抱歉,我无法在其中添加更多信息,因为它是敏感数据,所以是的,希望你们能理解。
还有一件事,即“host_name”,我从一个 JSON 对象中获取该信息,我正在为我的地图创建标记。
希望我能得到一些好的帮助。
解决方案
使用 JQuery:
向 td 元素添加一个修复类:
'<td class="tdclass ' + uniqID + '"value="' ....
然后在类上创建一个clicklistener:
$('.tdclass').off('click').unbind('click').click(function(e){ //unbind and off is to remove the existing click events
console.log(e);
console.log($(this).html());
console.log($(e).html());
var lat = $(this).attr('data-latitude');
var lng = $(this).attr('data-longitude');
map.flyTo([lat,lng]);
});
推荐阅读
- apache-spark - 如何像运行 Python 作业一样运行 pyspark shell 代码
- css - 如何使用顺风使 CSS 网格项目具有自动高度?
- bigbluebutton - 有没有办法修改 bbb-install.sh 脚本以允许服务器在 2 个内核上运行(低于最低规格)
- asp.net-mvc - 在现有的 WebForms Web 应用程序上实施 Microsoft 身份验证 (owin)
- c# - 无法在 Xamarin xaml 中引用本机 Android 视图
- python - Flask App Builder - 覆盖字段的小部件
- javascript - 用它的块(也是一个数组)更新一个数组,保持索引相同
- azure-devops - 如何在 ARM 模板中引用已存在的 Azure 门户创建的存储帐户
- python - 函数定义上的 pylint 'unused_variable' 警告
- django-import-export - Django import export 如何只导出一个带有选择性列的对象