Как загрузить фоновые листы в Leaflet Web Gis? - PullRequest
0 голосов
/ 01 мая 2020

У меня есть код листовки в веб-приложении Gis Django, как показано:

<!DOCTYPE html>
<html>
<head>
	<title>Layers Control Tutorial - Leaflet</title>
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" />
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
    <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script>

	<style>
		html, body {
			height: 100%;
			margin: 0;
		}
		#map {
			width: 600px;
			height: 400px;
		}
	</style>
</head>
<body>
<div id='map'></div>
<script>
 
	var L1  = L.tileLayer('https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png'),
		L1B  = L.tileLayer('http://127.0.0.1:8000/osm-intl/{z}/{x}/{y}.png'),
		L2   = L.tileLayer('http://tiles.wmflabs.org/hillshading/{z}/{x}/{y}.png'),
	  L2B   = L.tileLayer('http://127.0.0.1:8000/gray/{z}/{x}/{y}.png'),
		L3  = L.tileLayer('https://tiles.wmflabs.org/hikebike/{z}/{x}/{y}.png'),
		L3B  = L.tileLayer('http://127.0.0.1:8000/hikebike/{z}/{x}/{y}.png'),
		L4 = L.tileLayer('http://a.tile.stamen.com/toner/{z}/{x}/{y}.png'),
		L4B = L.tileLayer('htt://127.0.0.1:8000/toner/{z}/{x}/{y}.png'),
		L5 = L.tileLayer('http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg');
		L5B = L.tileLayer('htt://127.0.0.1:8000/watercolor/{z}/{x}/{y}.jpg');

	var map = L.map('map', {
		center: [39.73, -104.99],
		zoom: 10,
		layers: [L1]
	});

	var baseLayers = {
		"L1": L1,"L2": L2,'L3':L3,'L4':L4,
	};

	var overlays = {'L5':L5,
 	};

	L.control.layers(baseLayers, overlays).addTo(map);
</script>
</body>
</html>
L1: L.tileLayer('https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png') загрузить слой плиток для пользователя и L1B: L.tileLayer('http://127.0.0.1:8000/osm-intl/{z}/{x}/{y}.png') отправить на мой сервер то, какие плитки видел пользователь?

Я хочу, чтобы при выборе любого слоя (всего одним щелчком мыши), например, выберите L1 (на контрольном слое), одновременно включите L1 и L1B (в фоновом режиме), а при нажатии L2 (на контрольном слое) одновременно включите L2 и L2B (в фоновом режиме), и ....

Я не хочу добавлять L1B или какой-либо слой B к управляющему слою, потому что у меня так много слоев и управляющий слой. Лицо становится уродливым, и это будет сбивать с толку .

Как мне это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...