我正在使用Leaflet来标记一系列标记.我正在使用MarkerCluster插件来创建集群.我现在正在做什么我将地图的视图设置为我的数组的第一点.我要做的就是使地图居中,以便用户可以在地图加载时查看所有点/群集.
我的阵列看起来像m = [L.Marker, L.Marker,...].我将每个添加到我的群集组,如:
var markers = L.MarkerClusterGroup();
for(var i = 0; i < m.length; i++){
markers.addLayer(m[i]);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 Leaflet.js ,热图插件。
有一个叫做 L.heatLayer 的小类(源代码https://github.com/Leaflet/Leaflet.heat/blob/gh-pages/src/HeatLayer.js)
没有不透明度选项
选项只有
options: {
maxZoom: 18,
radius: 25,
blur: 15,
max: 1.0},
Run Code Online (Sandbox Code Playgroud)
有什么办法可以使用此 Leaflet.js heatLayer 控制不透明度?非常感谢
大家好,我有一组标记是在.each循环上动态创建的,就像这样。
$.each(data, function(index, element) {
markerArr[element.id] = L.marker(map.unproject([element.LocationX,element.LocationY],map.getMaxZoom()-4)).addTo(map);
});
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在单击时为每个弹出窗口打开弹出窗口,并在弹出窗口中显示唯一ID?
如果要像这样用唯一的名称声明每个标记,则可以执行此操作。
var marker1 = L.marker([158,395]).addTo(mapl);
var marker2 = L.marker([158,410]).addTo(mapl);
marker1.bindPopup("Kanye West");
marker1.on('click', function (e) {
this.openPopup();
});
marker2.bindPopup("50 Cent");
marker2.on('click', function (e) {
this.openPopup();
});
Run Code Online (Sandbox Code Playgroud)
但是我需要能够打开数组中的所有标记。
尝试这样的事情没有运气
markerArr[this].on('click', function (e) {
this.openPopup();
});
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。
谢谢。
我正在使用传单绘制控件获取某些区域的几何图形。这些几何图形是多边形、线串、矩形和圆形,我将它们放入数据库中。我想获得从中心点到这些几何图形边缘的距离。
我正在使用https://github.com/mapbox/leaflet-omnivore以这种方式解析几何:
var layer = omnivore.wkt.parse(geometry);
var center = layer.getBounds().getCenter();
Run Code Online (Sandbox Code Playgroud)
我不知道如何获得从中心到边缘的距离。是否可以?
因此,我正在尝试使用带有 geojson 的传单作为坐标来映射公交路线。我在一个方面遇到了困难,点击后,总线线路被加粗,理想情况下,最后一次点击的功能会返回到默认样式。
到目前为止我所拥有的
function $onEachFeature(feature, layer) {
layer.on({
click: function(e) {
//calls up the feature clicked on
var $layer = e.target;
var highlightStyle = {
opacity: 1,
weight: 5
};
$layer.bringToFront();
$layer.setStyle(highlightStyle);
}
});
}
//imagine all the leaflet map tile code here
//this is where the features get added in and the $oneachfeature function
var busFeature = L.geoJson(busRoutes, {
style: defaultBusRouteColor,
onEachFeature : $onEachFeature
});
busFeature.addTo(map);
Run Code Online (Sandbox Code Playgroud)
上面,我现在成功地将功能的样式更改为highlightStyle. 但是,当单击另一个特征时,该样式将保留。如何删除之前单击的要素样式,以便一次只有一个要素具有该样式highlightStyle?
我已经尝试过的事情:使用 addClass/removeClass 到 jQuery 方法,layer.resetStyle() …
在 Leaflet 上,给定中心和半径,我可以轻松创建一个新圆:
// Circle
var radius = 500; // [metres]
var circleLocation = new L.LatLng(centreLat, centreLon);
var circleOptions = {
color: 'red',
fillColor: '#f03',
fillOpacity: 0.5
};
var circle = new L.Circle(circleLocation, radius, circleOptions);
map.addLayer(circle);
Run Code Online (Sandbox Code Playgroud)
上面的圆是创建和绘制的,没有问题,就这样了。
但是,如果我现在想创建并绘制一个包围圆的矩形,则它不起作用。这是我所做的:
// Rectangle
var halfside = radius; // It was 500 metres as reported above
// convert from latlng to a point (<-- I think the problem is here!)
var centre_point = map.latLngToContainerPoint([newCentreLat, newCentreLon]);
// Compute SouthWest and NorthEast points
var sw_point = …Run Code Online (Sandbox Code Playgroud) javascript latitude-longitude leaflet angular-leaflet-directive
我正在寻找一种使用Javascript将图像添加到"传单地图"的方法.
我想要做的是加载图像,调整其大小和位置,并将其附加到传单地图.
我正在开发一个使用Leaflet.js创建地图的Web应用程序,使用Vue.js来管理应用程序,使用Bulma for CSS.
Bulma有一个"模态"元素,当它的类设置为时,它应该出现在其他所有元素的前面is-active.我有这个工作,除了地图不会像页面的其余部分一样淡入背景.
我对模态知之甚少.有没有人知道为什么地图会在其他一切消失的情况下仍然可见?谢谢!!
我有一个JS变量来控制页面的样式。我希望它根据屏幕分辨率进行更改。如何使它取决于CSS媒体查询的结果。
我知道我可以直接在JS中检查屏幕分辨率,但是我想将所有样式决定保留在CSS内,而不是将其散布在JS和CSS文件中。
为避免XY问题:我正在使用Leaflet,而JS变量决定是否折叠了列出可用图层的任何地图控制面板。它应该在小屏幕(移动设备)上折叠而不是在大屏幕(适当的显示器)上折叠。
相关代码如下
html,
body {
height: 100%;
margin: 0;
}
#map {
width: 600px;
height: 400px;
}
@media (min-width: 1000px) {
#map {
width: 1000px;
height: 900px;
}
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<!--based on https://leafletjs.com/examples/layers-control/ example -->
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin="" />
<script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
<link rel="stylesheet" href="example.css" />
</head>
<body>
<div id='map'></div>
<script>
var positron = L.tileLayer('https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png', {
attribution: '#{openstreetmap_copyright_notice}, basemap: © <a href=\"http://cartodb.com/attributions\">CartoDB</a>',
subdomains: 'abcd',
maxZoom: …Run Code Online (Sandbox Code Playgroud)您知道如何从R的传单地图中删除国家/地区名称吗?
leaflet(quakes) %>% addTiles()
Run Code Online (Sandbox Code Playgroud)
我想要清晰的地图,没有文字
leaflet ×10
javascript ×8
css ×2
jquery ×2
mapbox ×2
bulma ×1
geojson ×1
geometry ×1
heatmap ×1
html ×1
leaflet.draw ×1
modal-dialog ×1
r ×1
vue.js ×1