【问题标题】:Show Local Weather Google Geocoder API already determined Geolocation显示本地天气 Google Geocoder API 已确定地理位置
【发布时间】:2017-10-31 13:22:47
【问题描述】:

我已经在使用来自 FreeCodeCamp 的地理定位调用 我有一个链接的 OpenWeatherMap API,可以根据地理位置查找天气 我现在添加了一个 Google API,因此我不仅可以添加城市名称,还可以添加州和国家/地区。

我无法弄清楚或找到如何使用已确定的地理位置数据从 Google GeoCoder API 获取我需要的信息...我在 google 上只能找到创建一个多余的新调用,或者我读错了或我没有在谷歌中使用正确的搜索词,因为我没有找到任何东西......

我只想使用我已经拥有的经度和纬度坐标来拉城市、州、国家。 (我可以从开放天气中获得城市和国家,但不能从州获得,或者至少它没有为我显示) 我试图不必重写:

$(document).ready(function (){
var longi;
var lat;
var temp;

if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
longi = position.coords.longitude;
lat = position.coords.latitude;

// create API with Geolocation
var api = "http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+longi+"&appid=API_GOES_HERE";  

var googGeoloc = "https://maps.googleapis.com/maps/api/js?key=API_GOES_HERE&callback=initMap";  

var geocoder = new google.maps.Geocoder;

//$(".location").html(lat + ", " + longi);
$.getJSON(api, function (data) {
//var weatherType = data.weather[0].description;
var ktemp = data.main.temp;
var fTemp = Math.round((ktemp)*(9/5)-459.67); //temp in F
var cTemp = Math.round((fTemp - 32) * (5/9)); //temp in c
var windSpeed = data.wind.speed;
var city = data.name;

$(".location").html(city);
$(".degrees").html("Your Current Temp is: " + fTemp + " Degrees");
});
})
}
});

正如您从我的代码中看到的那样,我已经在获取 GeoLocation 坐标...我想使用经度和纬度信息,我已经必须从 Google API 调用中获取州或城市、州、国家/地区。 . 我可以从 OpenWeatherMap 解析城市和国家,并在我的测试页面上有......我只需要州/省

【问题讨论】:

    标签: javascript google-geocoding-api google-geolocation


    【解决方案1】:

    https://openweathermap.org/current#geo

    从返回的 json 对象可以看出,他们的 lat 和 long api 确实提供了城市和国家/地区,

    `

    api.openweathermap.org/data/2.5/weather?lat=35&lon=139
    
    {"coord":{"lon":139,"lat":35},
    "sys":{"country":"JP","sunrise":1369769524,"sunset":1369821049},
    "weather":[{"id":804,"main":"clouds","description":"overcast clouds","icon":"04n"}],
    "main":{"temp":289.5,"humidity":89,"pressure":1013,"temp_min":287.04,"temp_max":292.04},
    "wind":{"speed":7.31,"deg":187.002},
    "rain":{"3h":0},
    "clouds":{"all":92},
    "dt":1369824698,
    "id":1851632,
    "name":"Shuzenji",
    "cod":200}
    

    `

    【讨论】:

    • 如果您在解析信息方面需要帮助,我完全不介意,但您应该将其作为学习过程的一部分 :) 如果您有任何其他问题,请告诉我
    • 它只是碰巧在他们的休息api上没有提供状态:)
    • hmm 我不认为天气的 api 服务提供了您正在寻找的信息,您可能需要请求一个不同的 api,它可以使用您的 lat 和 long 来确定状态/providence :) 也许也尝试向 google api 发出请求,不确定他们的 api 是否返回状态/普罗维登斯,但我想这是谷歌地图哈哈哈 :) 你可能不得不使用承诺以同步方式检索这两个数据:) 或者我们方法你喜欢数据同步呵呵
    • 一旦你有一个谷歌 api 密钥https://maps.googleapis.com/maps/api/geocode/json?latlng=${SEARCHING_lat},${SEARCHING_long}&key=${YOUR_GOOGLE_API_KEY} 尝试这个,来自该对象的响应 json 有一个 ... results[0].formatted_address ,其中包括你可以使用解析的位置的完整地址正则表达式或字符串操作以获取状态/普罗维登斯 :) GL!~ 如果您需要帮助,请告诉我。
    • 例如,对象的以下路径可能会返回类似这样的内容,我刚刚在墨西哥随机选择了一个地方,我爱我一些来自 michoacan 的肉卷 :) results[0].formatted_address: "Unnamed Road , Michoacán, Mexico",
    猜你喜欢
    • 2014-06-10
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2021-05-08
    • 2011-02-25
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多