Я хочу получить широту и долготу событий по щелчку в листовке и вернуть долготу широты в JSON для следующего кода: - Какой код JSON я должен включить, чтобы получить результат в следующем формате: -
{
click_1: {
lattitude: "bac",
longtude: "cde"
}
click_2: {
lattitude: "bac",
longtude: "cde"
}
}
<html>
<head>
<body>
<button name = "GetJSON" value = "OK" type = "button" onclick = "getJSON()">getJSON</button>
</body>
<link rel = "stylesheet" href = "https://unpkg.com/[email protected]/dist/leaflet.css"
integrity = "sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ= = "
crossorigin = ""/>
<!-- Make sure you put this AFTER Leaflet's CSS -->
<script src = "https://unpkg.com/[email protected]/dist/leaflet.js"
integrity = "sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw= = "
crossorigin = ""></script>
<div id = "mapid"></div>
<style>
#mapid { height: 180px; }
</style>
<script>
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoicHJpeWFua2FtbWkiLCJhIjoiY2l1amxrOWptMDAwNTJ6cm81NngxbXA3cSJ9.8UCyiu8D0ShQNzEs5ze9dw', {
attribution: 'Map data © <a href = "http://openstreetmap.org">OpenStreetMap</a> contributors, <a href = "http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href = "http://mapbox.com">Mapbox</a>',
maxZoom: 18,
id: 'mapbox.streets',
accessToken: 'your.mapbox.access.token'
}).addTo(mymap);
function onMapClick(e) {
// alert("You clicked the map at " + e.latlng);
// document.write(' <?php insert(e.latlng); ?> ');
}
mymap.on('click', onMapClick);
</script>
</head>
</html>
Вы сами пытались это сделать / у вас есть какие-то конкретные проблемы?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы все делаете правильно, и вы получите широту и долготу с помощью кода ниже.
function onMapClick(e) {
alert("latitude " + e.latlng.lat);
alert("longitude " + e.latlng.lng);
// alert("You clicked the map at " + e.latlng);
// document.write(' <?php insert(e.latlng); ?> ');
}
Я хочу вернуть json в следующем формате: - {click_1: {lattitude: "bac", longtude: "cde"} click_2: {lattitude: "bac", longtude: "cde"}} не во всплывающем окне
Вы можете добавить данные в объект массива, чем сделать его json
<script src = "https://unpkg.com/[email protected]/dist/leaflet.js"
integrity = "sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw= = "
crossorigin = ""></script>
<div id = "mapid"></div>
<style>
#mapid { height: 180px; }
</style>
<script>
var JsonData = {};
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoicHJpeWFua2FtbWkiLCJhIjoiY2l1amxrOWptMDAwNTJ6cm81NngxbXA3cSJ9.8UCyiu8D0ShQNzEs5ze9dw', {
attribution: 'Map data © <a href = "http://openstreetmap.org">OpenStreetMap</a> contributors, <a href = "http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href = "http://mapbox.com">Mapbox</a>',
maxZoom: 18,
id: 'mapbox.streets',
accessToken: 'your.mapbox.access.token'
}).addTo(mymap);
var i =1;
function onMapClick(e) {
// alert("You clicked the map at " + e.latlng);
// document.write(' <?php insert(e.latlng); ?> ');
console.info(e.latlng);
var lat = e.latlng.lat;
var lng = e.latlng.lng;
var key = 'click_'+i;
JsonData[key] = {latitude:lat,longtitude:lng };
i++;
console.info(JsonData);
}
mymap.on('click', onMapClick);
</script>
Я хочу вернуть json в следующем формате: - {click_1: {lattitude: "bac", longtude: "cde"} click_2: {lattitude: "bac", longtude: "cde"}} не в консоли
Я сказал, что вы можете изменить форму, как хотите, хорошо, я отредактировал ответы, надеюсь, это сработает для вас
Это не JSON, а объект (который должен быть массивом объектов, imho)