Я нахожусь в классе для веб-картографии, и это задание действительно пинает меня в задницу. Я совершенно новичок в этом и изучаю только JS и такое уже три недели. Таким образом, задача состоит в том, чтобы иметь карту с маркерами для трех городов и кнопку на странице, чтобы, когда пользователь нажимает на нее, они вводили мили или километры. И на основе этого ввода функция должна иметь возможность отображать плотность населения на основе км или миль (зависит от того, что они набрали). Но сейчас он дает мне сообщение об ошибке, что единицы не определены. Я написал своему профессору по электронной почте, и он был расплывчатым, и в основном сказал, что юниты и вызывающий их юнит были размещены «случайно».
Я просто включил код в вызывающую и функциональную часть назначения. Часть карты работает нормально.
var caller = mapCities(units)
var button = document.getElementById("map-cities");
button.addEventListener("click", function() {
do {
var units = prompt('Enter the units for calculating density', 'Enter "miles" or "km"');
} while (units != "miles" && units != "km");
mapCities(units);
});
function mapCities(units) {
var fortWayneDensity = CalcPopDensity(units, fortWayne.pop, fortWayne.areaMi, fortWayne.areaKm)
var indyDensity = CalcPopDensity(units, indy.pop, indy.areaMi, indy.areaKm)
var southBendDensity = CalcPopDensity(units, southBend.pop, southBend.areaMi, southBend.areaKm)
// A density variable for each city representes a caller which sends down three pieces of information - units that was passed in through the MapCities caller and the pop and area from the objects you created above
var fortWaynePopup = "<b>" + "Fort Wayne" + "</b><br>" +
"<b>Density</b>: "+fortWayneDensity.toLocaleString()+" people per square " + units;
var fortWayneMarker =
L.marker(fortWayne.coord)
.addTo(map)
.bindPopup(fortWaynePopup);
var indyPopup = "<b>" + "Indianapolis" + "</b><br>" +
"<b>Density</b>: "+indyDensity.toLocaleString()+" people per square " + units;
var indyMarker =
L.marker(indy.coord)
.addTo(map)
.bindPopup(indyPopup);
var southBendPopup = "<b>" + "South Bend" + "</b><br>" +
"<b>Density</b>: "+southBendDensity.toLocaleString()+" people per square " + units;
var southBendMarker =
L.marker(southBend.coord)
.addTo(map)
.bindPopup(southBendPopup);
}
function CalcPopDensity (units, pop, areami, areakm){
var choice = units;
if (units = km) {
pop/areakm}
else {
pop/areami}
return choice
}