<!DOCTYPE html>
<html><head>
	<title>20 km autour de soi</title>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	
	<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" 
	integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A=="
	crossorigin=""/>
   
	<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"
    integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
    crossorigin=""></script>

	<style>	
	#mapid { position: absolute; top: 0; bottom: 0; width: 100%; }
			
	.clock {
		width: 170px;
		text-align: center;
		position: absolute;
		border: 1px solid black;
		right: 0;}

    .clock .map-overlay-inner {
        background-color: #fff;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
        border-radius: 0px;
        padding: Opx;
		left : 0px;
        margin-bottom: 0px;}
	</style>	
</head>

<body>
	<div id="mapid" ></div> 

	<div class="clock leaflet-control">
	<div class="map-overlay-inner"> 
	<input type="button" value="Ma position" onClick="javascript:getLocationLeaflet();"><br>
	<label>Rayon : <span id="slider-value">30000</span></label><input id="slider" type="range" min="10000" max="30000" step="5000" value="30000">
	</div>
	</div>
	
<script>
	var mymap = L.map('mapid').setView([48.854889, 2.348113], 10);

	L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
		attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
		maxZoom: 18,
		id: 'mapbox/streets-v11',
		tileSize: 512,
		zoomOffset: -1,
		accessToken: 'pk.eyJ1IjoiZnJhbmNvaXNzZW1lY3VyYmUiLCJhIjoiY2tkdW1qdTRqMGM3YzJ4cGluOGs0OGRtOSJ9.cxLDmFzvudetTA6fSa26TA',
	}).addTo(mymap);
	
	var circle = L.circle([48.854889, 2.348113], 30000,{
			color: 'black',
			fillColor: 'grey',
			fillOpacity: 0.5
			}).addTo(mymap);

	function onMapClick(e) {circle.setLatLng(e.latlng);}
	
	function onLocationError(e) {alert(e.message);}
    function onLocationFound(e) {circle.setLatLng(e.latlng);}
    function getLocationLeaflet() {
         mymap.on('locationfound', onLocationFound);
         mymap.on('locationerror', onLocationError);
         mymap.locate({setView: true, maxZoom: 10});}
	
	mymap.on('click', onMapClick);

	var slider = document.getElementById('slider');
	var sliderValue = document.getElementById('slider-value');

	slider.addEventListener('input', function (e) {
		circle.setRadius(parseInt(e.target.value));
		sliderValue.textContent = e.target.value ;})
</script>
</body>
</html>