Как получить широту-долготу адресов с помощью геолокации HTML5 или API Google?

Меня сбивает с толку проблема, связанная с тем, что я могу получить местоположение пользователя из Facebook, и все, что мне нужно, это узнать широту и долготу этого местоположения, но я все еще не могу найти решение.

Это поможет, если я смогу получить эту широту и долготу, используя геолокацию HTML5 или любой API Google. Каково решение?

5 ответов

Решение
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(successFunction, errorFunction);
} else {
    alert('Похоже, что геолокация, которая требуется для этой страницы, не включена в вашем браузере. Пожалуйста, используйте браузер, который ее поддерживает.');
}

Если браузер поддерживает геолокацию и если getCurrentPosition выполняется успешно, затем вызывается функция успеха. А потом в функцию successFunction

иметь


function successFunction(position) {
    var lat = position.coords.latitude;
    var long = position.coords.longitude;
    console.log('Your latitude is :'+lat+' and longitude is '+long);
}

Подробнее об API геолокации здесь

Flyleaf, я работаю на SmartyStreets, где мы также предоставляем API для получения координат адресов; это называется LiveAddress API.

Как упоминал Барт, Google TOS не позволит вам геокодировать без показа карты Google, и более того, вы не сможете сохранить результаты. Если вы хотите найти адрес, как вы предложили, я рекомендую что-то вроде LiveAddress, которое на самом деле также проверит действительность адреса - эти другие API и HTML5 этого не сделают.

Надеюсь, вы найдете то, что работает для вас. Вопрос сейчас немного расплывчат, но, возможно, это поможет. Это может быть что-то вроде этого ( с Javascript):

LiveAddress.geocode(address, function(geo) {
    alert("The address is at: " + geo.coords);
});

Я нашел лучший вариант - использовать OpenStreetMap напрямую через API подпроекта ( Nominatim), который у них есть.

API документация

Пример вызова REST: http://nominatim.openstreetmap.org/reverse?format=xml&lat=35.958&lon=-83.952&zoom=18

Обратите внимание, что хотя их условия обслуживания разрешают прямое использование на стороне клиента из браузера JavaScript, они не хотят использовать большие объемы и предлагают использовать ваш сервер в качестве прокси-сервера для добавления кэширования, поэтому его можно легко переключать. Данные доступны для загрузки, и предоставляются инструкции по настройке базы данных с возможностью локального запроса.

Проверьте Gisgraphy бесплатный гео сервис с открытым исходным кодом.

Каждый скажет вам использовать API Карт Google, но ознакомьтесь с условиями использования.

(g) Запрещено использование контента без Карты Google. Вы не должны использовать или отображать Контент без соответствующей карты Google, если вам явно не разрешено делать это в Документации API Карт или с письменного разрешения Google. В любом случае вы не должны использовать или отображать Контент на карте, не связанной с Google, или в сочетании с ней. Например, вы не должны использовать геокоды, полученные с помощью Сервиса, в сочетании с картой, не принадлежащей Google. В качестве другого примера, вы не должны отображать изображения Street View вместе с картой, не принадлежащей Google, но вы можете отображать изображения Street View без соответствующей карты Google, потому что Документация API Карт явно разрешает вам это делать.

Так что с Google API вы должны использовать Google Map. Так что, если вам нужна карта, вы в порядке.

Это поможет, если я смогу получить эту широту и долготу, используя геолокацию HTML5

Ну, тогда просто сделай именно это - где именно твоя проблема с этим?

Вот что getCurrentPosition метод для.

Другие вопросы по тегам