有没有一种简单的方法可以向 Leaflet.js 地图添加指北针?我在网上搜索了一些,但找不到太多。
当单击适当的按钮时,我需要能够将传单地图放在标记上。
<button onclick='getLoc(" + geojson.features[i].geometry.coordinates[0] + "," + geojson.features[i].geometry.coordinates[1] + ")'>View</button>
function getLoc(c){
var c = L.GeoJSON([lng,lat]);
}
Run Code Online (Sandbox Code Playgroud)
我被困在这里,任何帮助完成这将不胜感激。或者,如果其他人使用 JSON 有不同的方法。
以下代码在启用和禁用标记拖动的行上收到错误(“无法获取未定义或空引用的属性‘禁用’”)。标记很好地显示在地图上,并且可以如创建线所示进行拖动。放置警报代替启用线会产生一个合适的对象,所以我相信标记已定义。我需要做些什么来启用 IHandler 接口?还是我错过了其他东西?
var marker = L.marker(L.latLng(lat,lon), {icon:myIcon, draggable:'true'})
.bindLabel(name, {noHide: true,direction: 'right'});
marker._myId = name;
if (mode === 0) {
marker.dragging.enable();
} else {
marker.dragging.disable();
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试向L.Control我的传单地图添加一个元素。但是,一旦我将元素添加到我的地图中,我注意到它不是clickable。我想在这个L.Control元素中显示一个表单,但是我无法从下拉菜单中选择任何元素,因为点击总是会传递到地图。
这里有一个 JSfiddle:http : //jsfiddle.net/fd3dnnc1/1/
以及我的 JS 代码:
var map = L.map('map').setView([0.27, 37.66], 6);
// add an OpenStreetMap tile layer
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
var mainMenu = L.Control.extend({
options: {position: 'topright'},
onAdd : function (map) {
this._div = L.DomUtil.create('div', 'mainMenu');
this._div.innerHTML = '<h3>Main Menu</h3>';
this._div.innerHTML += '<h4>Data:</h4> MODIS NDVI <h4>AOI:</h4> Kenya, Africa <br><br>'
this._div.innerHTML += '<h4>Indicator:</h4>'
this._div.innerHTML += '<form><form id="form" class="form" action="" method="POST">' +
'<select name="indicator"><option value="NDVI_ABS">NDVI<br>' +
'<option …Run Code Online (Sandbox Code Playgroud) 有人知道mapbox或leaflet是否可以检测一个点是否位于L.Circle内?谢谢。
我在Leaflet.js中使用OpenStreetMap .
我有一张带有室内照片的地图.问题是当我放大,街道消失.你知道什么可以解决这个问题吗?技巧或提示!
编辑:
// Load the Map
this.map_ = L.map($(selector)[0], {
center: [
48.8459382,
2.2863024,
],
maxZoom: 24,
zoom: 20,
});
Run Code Online (Sandbox Code Playgroud) 我开始使用传单地图,我在js控制台中输出非常嘈杂.它看起来像是在某种调试模式下工作.它有任何选项可以关闭它吗?
我想用传单在地图上画一条折线.我想申请的基本手势是:
用户单击并按住鼠标按钮 - >,用于定义第一个标记.如果用户握住鼠标按钮并移动鼠标,则显示相应的"橡皮筋".
用户释放鼠标按钮 - >第二个标记添加到地图中,2个标记由一条线链接.
从第二个标记开始,用户可以使用与上面相同的过程继续构建第二行.
最终结果应该是由折线连接的坐标/标记集.
我在禁用Leaflet Minimap中的滚轮缩放时遇到问题。我根据https://github.com/Norkart/Leaflet-MiniMap/pull/95使用centerFixed和zoomLevelFixed选项实例化小地图,但是我仍然可以使用滚轮进行缩放;虽然平移是禁用的。
以下是代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="fullscreen.css" />
<!-- Leaflet -->
<link rel="stylesheet"
href="https://unpkg.com/leaflet@1.0.1/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.0.1/dist/leaflet.js"
type="text/javascript"></script>
<!-- Leaflet Plugins -->
<link rel="stylesheet" href="Control.MiniMap.css" />
<script src="Control.MiniMap.js" type="text/javascript"></script>
</head>
<body>
<div id="map" ></div>
<script type="text/javascript">
var map = new L.Map('map', { scrollWheelZoom: false});
var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmAttrib='Map data © OpenStreetMap contributors';
var osm = new L.TileLayer(osmUrl, {/*minZoom: 5, maxZoom: 18,*/ attribution: osmAttrib});
map.addLayer(osm);
map.setView(new L.LatLng(59.92448055859924, 10.758276373601069),10);
//Plugin magic goes here! Note …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改我的KML图层之一的默认标记。我为此使用小叶杂食动物。
这是我已经拥有的代码。即使img位在代码中,标记也不会更改为图像,并且图层控件仅显示文本。
标记代码:
var redIcon = L.icon({
iconUrl: 'icon.png',
iconSize: [20, 24],
iconAnchor: [12, 55],
popupAnchor: [-3, -76]
});
var nissanLayer = omnivore.kml('icons.kml')
.on('ready', function() {
map.fitBounds(customLayer.getBounds());
//change the icons for each point on the map
// After the 'ready' event fires, the GeoJSON contents are accessible
// and you can iterate through layers to bind custom popups.
customLayer.eachLayer(function(layer) {
// See the `.bindPopup` documentation for full details. This
// dataset has a property called `name`: your dataset might not, …Run Code Online (Sandbox Code Playgroud)