Javascript 使用反向地理编码获取城市名称和州

Javascript 使用反向地理编码获取城市名称和州,javascript,reverse-geocoding,geocode,weather-api,Javascript,Reverse Geocoding,Geocode,Weather Api,救命啊!我对编码是新手,我刚刚参加了免费编码营的挑战,在那里我需要创建一个网站,使用反向地理编码显示当地的天气。我希望页面显示用户所在的城市和州。现在我有经度和纬度,但我不知道如何把它变成城市和州。这是我到目前为止所拥有的 if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { var lat = position.coords.latitude; v

救命啊!我对编码是新手,我刚刚参加了免费编码营的挑战,在那里我需要创建一个网站,使用反向地理编码显示当地的天气。我希望页面显示用户所在的城市和州。现在我有经度和纬度,但我不知道如何把它变成城市和州。这是我到目前为止所拥有的

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(position) {
    var lat = position.coords.latitude;
    var long = position.coords.longitude;
    $("#city").html("latitude: " + lat +"<br>longitude: " + long);
  });
};

如果你想到达那个点,找到你已经知道的经度和纬度


如果你想根据已知的经度和纬度获得相应的州,那么你需要知道每个州的经度和纬度范围,然后用这个范围来确定。获取城市的方法也是如此。

谢谢大家,我今天做了很多工作,并想出了一个有效的答案。我知道必须有一个比我在那里找到的其他解决方案更简单的解决方案。我使用了自由代码营的API,他们将其包括在挑战中

function getLocation () {
  $.getJSON(('https://fcc-weather-api.glitch.me/api/current?lat=' + latitude + 
'&lon=' + longitude), function(loc) {
$("#city").html(loc.name + ", " + loc.sys.country);
  });
};

不管它值多少钱,我一直在寻找类似的东西,并且正在尝试

如果去除编码位,则会产生相当一致的城市、州和国家名称:

const extractCityName = latlng => {
  googleMapsClient.reverseGeocode({ latlng }, (err, response) => {
    if (!err) {
      return response.json.plus_code.compound_code.split(' ').slice(1).join(' ');
    }
  });
};


// examples: 

console.log(extractCityName(40.6599718,-73.9817292));
// New York, NY, USA

console.log(extractCityName(37.386052, -122.083851));
// Mountain View, CA, USA

console.log(extractCityName(51.507351, -0.127758));
// Westminster, London, UK

您使用什么API获取天气数据?他们可能返回包含城市和州的JSON。Google Maps API您从Google Maps获取天气数据吗?我试图使用Google Maps API获取城市和州。事实上我今天做了很多。我使用了来自自由代码营(“+纬度+”&lon=“+经度)的API,它有天气信息以及城市和国家(不是州tho),所以我将继续使用它。
const extractCityName = latlng => {
  googleMapsClient.reverseGeocode({ latlng }, (err, response) => {
    if (!err) {
      return response.json.plus_code.compound_code.split(' ').slice(1).join(' ');
    }
  });
};


// examples: 

console.log(extractCityName(40.6599718,-73.9817292));
// New York, NY, USA

console.log(extractCityName(37.386052, -122.083851));
// Mountain View, CA, USA

console.log(extractCityName(51.507351, -0.127758));
// Westminster, London, UK