geolocator.js может сделать это.(Я автор).
Получение названия города (ограниченный адрес)
geolocator.locateByIP(options, function (err, location) {
console.log(location.address.city);
});
Получение полной информации об адресе
В приведенном ниже примере сначала будет использоваться HTML5 Geolocation API для получения точных координат.Если произойдет сбой или будет отказано, он перейдет к поиску Geo-IP.Как только он получит координаты, он обратный геокодирует координаты в адрес.
var options = {
enableHighAccuracy: true,
fallbackToIP: true, // fallback to IP if Geolocation fails or rejected
addressLookup: true
};
geolocator.locate(options, function (err, location) {
console.log(location.address.city);
});
Это использует внутренние API Google (для поиска адреса).Поэтому перед этим вызовом вам следует настроить геолокацию с помощью своего ключа API Google.
geolocator.config({
language: "en",
google: {
version: "3",
key: "YOUR-GOOGLE-API-KEY"
}
});
Geolocator поддерживает геолокацию (с помощью поиска HTML5 или IP), геокодирование, поиск адресов (обратное геокодирование), расстояние и продолжительность, информация о часовом поясе и многое другое ...