当用户将鼠标hover在传单中的对象上时,我需要在对象周围显示轮廓。 现在,我可以让对象一直突出显示或根本不突出显示。 以下是我的代码示例: var polygon1 = L.polygon([ [83.34425, -19.51172], [83.2571, -15.86426], [83.07408, -16.04004], [82.78192, -17.31445], [82.62569, -11.42578], [82.36164, -11.29395], [82.11236, -12.48047], [82.37332, -22.71973], [82.64822, -22.93945], [83.34425, -19.51172] ], { color: ‘yellow’, opacity: 0.0, fillColor: ‘#fff’, fillOpacity: 0.0 }); polygon1.bindLabel(popup_csb); polygon1.bindPopup(content_csb); polygon1.addTo(map); 我需要在两种情况下为对象制作一个事件。 发生鼠标hover时,显示突出显示以及弹出标签。 当鼠标离开物体时,高光将消失。 当用户点击页面上的链接(建筑物列表)时,该对象被概述以向用户显示建筑物在地图上的位置。 当用户单击另一个建筑物时,第二个案例也必须具有禁用事件。 非常感谢您的帮助!
我正在制作地图,我想在某个事件中删除地图上的所有function。 这些要素采用多层动态绘制。 一些代码是: $.getJSON(‘distributor-companies’, function (data) { var layers = []; $.each(data, function (i, item) { if (item.geojson != ”) { layers[i] = L.mapbox.featureLayer().addTo(map); $.getJSON(‘/geojson/’ + item.geojson, function (data) { layers[i].setGeoJSON(data); // Loop over the added layer layers[i].eachLayer(function (layer) { // Add click event layer.on(‘click’, function (e) { // Do stuff map.fitBounds(layers[i].getBounds()); }); }); }); […]
有谁知道如何检测传单地图是否设置为全屏? 所以这是我正在玩的一个例子。 我希望能够检测用户是否处于全屏状态。 我试过这个: $(“.leaflet-control-zoom-fullscreen”).click(function(e){ console.log(e); if(e.clientX 150){ $(“#dashboardA”).hide(); }else{ $(“#dashboardA”).show(); } }); 上面的代码有点作品。但我觉得有更好的方法来做到这一点。 例如,假设我在地图上显示某些内容,并希望在用户在全屏模式和普通模式之间移动时隐藏/显示它。 我该如何有效地做到这一点? 非常感谢。
这是我的代码。 function onMapClick(e) { e.originalEvent.defaultPrevented = true; var orig = e.originalEvent; console.log(orig.target); } map.on(‘click’, onMapClick); console.log将显示tile,即 但是当我使用传单标记聚类时,我无法找到图块 。 如何使用地图点击事件获取传单标记群集中的图块 ?
我有一张传单地图,我正在动态添加标记。 当我将鼠标hover在标记上时,除了单击标记之外,我想将弹出窗口称为标记。 我的代码是: function makeMarker(){ var Marker = L.marker… Marker.on(‘mouseover’, function(){Marker.bindPopup(‘HI’).openPopup();}); Marker.on(‘mouseout’, function(){Marker.closePopup();}); } 如果我注释掉鼠标输出行,则会出现弹出窗口,但是我必须单击elswhere才能关闭它。 问题是当我放入鼠标时,当光标hover在标记上并且没有任何显示时,光标有点闪烁。 我认为弹出窗口是开放的,但后来关闭非常快,这就是为什么光标闪烁但我不知道如何解决这个问题
我的传单地图有问题。 我的地图上有一些标记,当点击一个标记时,标记居中。 现在我想点击一个标记时它不仅居中,而且我想放大标记。 当我添加这个 map.setZoom((16), {animate: true}); 至 map.on(‘popupopen’, function(centerMarker) { var cM = map.project(centerMarker.popup._latlng); cM.y -= centerMarker.popup._container.clientHeight/2 map.setZoom((16), {animate: true}); map.panTo(map.unproject(cM),{animate: true}); }); 我的代码中心并没有真正起作用,因为它放大但不会使标记居中。 但是如果我处于预期的缩放级别(16),所有其他标记都会居中。 如果我在缩放级别16之外,我该怎么做才能将地图缩放到标记并且标记也会居中? 我对传单和jquery很新…
我使用传单API在javascript中有一个基本的geoJson程序。 var area = L.map(‘map1’, {center: [27.8800,78.0800], zoom: 4 }); L.tileLayer(‘http://a.tiles.mapbox.com/v3/raj333.map-gugr5h08/{z}/{x}/{y}.png’).addTo(area); var indiaLayer= L.geoJson(india, {style: {weight: 2, opacity: 1, color: ‘white’, dashArray: ‘3’, fillOpacity: 0.1}}); area.addLayer(indiaLayer); function clicked(){ this.options.style.fillOpacity = 0.8; //how to refresh layer in the given map } indiaLayer.on(‘click’, clicked); 问题是我将如何自动刷新地图上的图层内容。 这里的例子 function clicked(){ indiaLayer.style.fillOpacity = 0.8; //how to refresh layer in the […]
我正在使用Leaflet.js作为地图。 现在我想从地图中删除添加的图层。 通过单击输入#button,所有选中的复选框都应更改为未选中,并且应从地图中删除所有相应的图层。 要从地图中删除图层,需要图层的ID。 此id等于相应复选框的id。 这就是为什么我使用jQuery获取所有已选中复选框的ID并将其值存储在对象中,此处称为someObj.idsChecked 。 当我尝试使用存储值val删除一个层时,它在console.log显示所需值时不起作用。 这里例如:mapcat52。 将先前的id硬编码插入到map.removeLayer(mapcat52)这样的函数中时,它按预期工作。 我的代码或我的想法中的错误在哪里? 任何帮助深表感谢。 HTML Map Layer One Map Layer Two … JS: $(‘#selectnone’).click(function() { var someObj = {}; someObj.idsChecked = []; $(“input:checkbox”).each(function() { if ($(this).is(“:checked”)) { someObj.idsChecked.push($(this).attr(“id”)); } }).attr(‘checked’, false); $.each(someObj.idsChecked,function(id, val) { // displays the wanted value, eg “mapcat52” if checkbox with this id is […]
使用ASP.NET MVC 3和C#我有一个网页来显示一个地图,我想在其上添加一个由多个纬度和经度坐标组成的折线。 使用Leaflet JavaScript库,您可以添加GeoJson图层。 我想从C#中的数据库中获取经度和纬度坐标,并将坐标列表传递给JavaScript以创建GeoJson或GeoJson 。 这是我想创建的GeoJson的一个例子: var polyline = { “type”: “Feature”, “geometry”: { “type”: “LineString”, “coordinates”: [ [-105.00341892242432, 39.75383843460583], [-105.0008225440979, 39.751891803969535] … ] }, “properties”: { “popupContent”: “This is a polyline of many coordinates.”, “underConstruction”: false } }; 如何创建类似于上面显示的GeoJson并将位置数据添加到C#或JavaScript的“ coordinates ”部分,然后在JavaScript中使用它来添加图层: var myLayer = L.geoJson().addTo(map); myLayer.addData(polyline); 我已经开始使用GeoJSON.net并提出了这个代码: foreach (Position point in Positions) […]
我有一个数组和一些svg path元素(我使用传单映射 )。 我需要检查一个路径的类是否匹配我的数组中的一个值,如果是这样,添加一个类fadeIn 。 var foundNations = [“usa”, “France”, “Italy”]; document.querySelectorAll(‘path’).forEach(path => { if (foundNations.includes(path.className)) { path.className.add(‘fadeIn’); console.log(path.className); } }); (function($) { var map = L.map(‘map’).setView([45.4655171, 12.7700794], 2); map.fitWorld().zoomIn(); L.tileLayer(‘https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw’, { attribution: ‘Map data © OpenStreetMap contributors, ‘ + ‘CC-BY-SA, ‘ + ‘Imagery © Mapbox’, id: ‘mapbox.light’ }).addTo(map); var mapHalfHeight = map.getSize().y / 2, […]