edit1: удалил var из lan и lon в функции showPosition.
Я пытаюсь получить координаты моего текущего местоположения. Получите эти координаты и передайте их через функцию. После передачи координат я хочу сохранить их в переменных lan и lon. Используйте эти координаты, чтобы добавить их в переменную URL. Оттуда я хочу использовать эту переменную URL для анализа и использовать JSON для поиска имени, города и т. д.
HTML:
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="geoLocal"></p>
JavaScript:
var lon, lan;
var geoLocal = document.getElementById("geoLocal");
//First part, I am creating the function to get the coordinates.
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
geoLocal.innerHTML = "Geolocation is not supported by this browser.";
}
};
//The first lines of code outputs the function and tells me the coordinates.
//As it tells me these coordinates I want to save them to **lan** **and** lon variables.
function showPosition(position) {
geoLocal.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
lan= position.coords.latitude;
lon= position.coords.longitude;
console.log(lan, lon);
return (lan, lon);
};
Выше я хотел бы, чтобы он возвращал координаты переменных lan и lon, чтобы я мог добавить их к URL-адресу ниже:
Я хочу добавить lan и lon и добавить их в конец wUndergroundGeo ниже. Прямо сейчас добавляются координаты, но по существу URL/переменная будет
var baseURL="http://api.wunderground.com/api/8a8af55ae16c8627/geolookup/q/"
var addLanLon= baseURL+ lan + "," + lon;
var wUndergroundGeo=addLanLon;
wUndergroundGeo заменит ту же самую переменную ниже.
var wUndergroundGeo='http://api.wunderground.com/api/8a8af55ae16c8627/geolookup/q/34.4278,-119.7034111.json';
var wUndergroundSF= 'http://api.wunderground.com/api/8a8af55ae16c8627/conditions/q/CA/San_Francisco.json'
var weather= new XMLHttpRequest();
weather.open("GET",wUndergroundGeo, false);
weather.send(null);
var myRequest= JSON.parse(weather.response);
var cityLocal= "City location: "+ myRequest.location.city + "<br/>";
document.getElementById("weather").innerHTML= cityLocal
showPosition
. - person Carl Edwards   schedule 17.12.2017var lan
иvar lon
всего наlan
иlon
в вашей функцииshowPosition
. Закрытие Javascript должно помочь вам. - person RaphaMex   schedule 17.12.2017lan
иlon
в вашей функцииshowPosition
, вы затеняете глобальные переменные, объявленные изначально. Попробуйте удалить ключевое словоvar
из переменных в функции. Затем после вызова функции значения должны быть доступны из этих переменных. - person JoshG   schedule 17.12.2017lan
иlon
API.return (lan, lon);
не вернет массив, если вы этого ожидаете,return [lan, lon];
вернет. Удачи в поиске решения. - person Marcelo Origoni   schedule 17.12.2017showPosition
или то, что вы ожидаете. Удалениеvar
из переменных в функции приведет к тому, что javascript присвоит значение глобальным переменным. Возврат не сработает, и я не вижу вызова функции. - person Marcelo Origoni   schedule 17.12.2017