Возможно ли в функции javascript создать из var с широтой и долготой позиции в Google maps var с именем местоположения? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть следующая простая функция javascript:

<script>
var location_coordinates = "37.652007,25.030289";
document.write (location_coordinates);
</script>

Есть ли способ создать в этом сценарии переменную, которая принимает location_coordinates и возвращает в другой переменной имя местоположения этой позиции?

1 Ответ

1 голос
/ 21 июня 2019

Обычно вам нужен какой-то сервис геокодирования (Google, что!), Такой как Google, Mapquest и многие другие. Что вы конкретно ищете, это "Обратное геокодирование"! Для этих сервисов вам обычно нужна учетная запись, в которой вы создаете приложение, которое даст вам ключ API для использования, некоторые люди достаточно хороши, чтобы оставить их там в Интернете =), поэтому вот пример ваших координат с использованием геокодирования Сервис от MapQuest :

btn.addEventListener('click', function(e) {
    // fetch the address
    fetch(`https://open.mapquestapi.com/geocoding/v1/reverse?key=jzZATD7kJkfHQOIAXr2Gu0iG62EqMkRO&location=${lat.value},${lng.value}`)
        .then((data) => {
            return data.json();
        })
        .then((json) => {
            // here you can do something with your data
            // like outputting the address you received
            // from the Geocoding Service of your choice
            if ( json.results[0] ) {
                const result = json.results[0].locations[0];

                output.innerHTML = `
                    <p>The address for your coordinates is:</p>
                    <address>
                        <span class="street" style="display: block">${result.street}</span>
                        <span class="postalcode">${result.postalCode}</span>
                        <span class="city">${result.adminArea5}</span>
                        <b class="country" style="display: block">${result.adminArea3}</b>
                    </address>
                `;
            }
        })
        .catch((err) => {
            console.log(err);
        });
});
<input type="text" placeholder="Latitude" id="lat" value="37.652007" />
<input type="text" placeholder="Longitude" id="lng" value="25.030289" />

<button type="button" id="btn">Get Address</button>


<div id="output" style="width: 300px; background: lightgray; padding: 24px; margin-top: 12px;"></div>
...