如何使用JavaScript获取用户所在的当前城市并将其显示在<;h2>;?

如何使用JavaScript获取用户所在的当前城市并将其显示在<;h2>;?,javascript,jquery,api,weather,city,Javascript,Jquery,Api,Weather,City,这是我一直在使用的当前JavaScript,是指向我使用它的代码笔的链接。我正在使用用户所在城市的位置来查找该城市的天气 我在多个网站上读过关于如何使用几种不同的API来获取用户城市位置的文章,但在我的项目中没有人参与过。提前感谢您的帮助。为了详细说明我之前的答案,一种更简洁、更普通的JavaScript方法获取坐标如下 这只是几条短的线路,其好处是巨大的: 不必包括jQuery库,因为jQuery库非常庞大,会降低页面加载速度 这意味着您不必依赖繁重的外部API来对相同的数据(以及其他无用的A

这是我一直在使用的当前JavaScript,是指向我使用它的代码笔的链接。我正在使用用户所在城市的位置来查找该城市的天气


我在多个网站上读过关于如何使用几种不同的API来获取用户城市位置的文章,但在我的项目中没有人参与过。提前感谢您的帮助。

为了详细说明我之前的答案,一种更简洁、更普通的JavaScript方法获取坐标如下

这只是几条短的线路,其好处是巨大的:

  • 不必包括jQuery库,因为jQuery库非常庞大,会降低页面加载速度
  • 这意味着您不必依赖繁重的外部API来对相同的数据(以及其他无用的API特定信息,如requestID)进行AJAX调用,并将大大简化您的应用程序
  • 避免使用许多回调,从而避免回调地狱
  • 有关结果,请参见下图。超轻和快速。有关更多详细信息,请参阅

    获取城市信息:

    通常最好的做法是只在数据库中存储坐标 然后在需要时提出单独的城市请求。这使事情变得复杂 当您想在手机或桌面上实现地图视图时更容易, 它们都使用坐标,而不是绘图的名称

    您可以使用GoogleMapsAPI直接传入LatLong数据。有人就如何做这件事提出了一个要点

    使用GMAP而不是地理IP的好处:

  • 谷歌地图API经过了大量的优化。从更快 服务器可以更好地编写代码。也可以导入特定零件 这样你就可以减少你的源代码大小。全部的 这一切加起来会带来更快的体验
  • 可以假设gmap比Geo-Ip这样的第三方网站存在的时间更长

  • 为了详细说明我之前的答案,一种更简洁、更普通的JavaScript方法获取坐标如下

    这只是几条短的线路,其好处是巨大的:

  • 不必包括jQuery库,因为jQuery库非常庞大,会降低页面加载速度
  • 这意味着您不必依赖繁重的外部API来对相同的数据(以及其他无用的API特定信息,如requestID)进行AJAX调用,并将大大简化您的应用程序
  • 避免使用许多回调,从而避免回调地狱
  • 有关结果,请参见下图。超轻和快速。有关更多详细信息,请参阅

    获取城市信息:

    通常最好的做法是只在数据库中存储坐标 然后在需要时提出单独的城市请求。这使事情变得复杂 当您想在手机或桌面上实现地图视图时更容易, 它们都使用坐标,而不是绘图的名称

    您可以使用GoogleMapsAPI直接传入LatLong数据。有人就如何做这件事提出了一个要点

    使用GMAP而不是地理IP的好处:

  • 谷歌地图API经过了大量的优化。从更快 服务器可以更好地编写代码。也可以导入特定零件 这样你就可以减少你的源代码大小。全部的 这一切加起来会带来更快的体验
  • 可以假设gmap比Geo-Ip这样的第三方网站存在的时间更长

  • 我也会试试这种方法!谢谢你,伙计。祝你的项目好运!问题是我不想只显示坐标,而是显示坐标的实际城市。建议?如果您觉得有帮助,请将其标记为答案并进行投票?我真的很感激:)我也会这么做的!谢谢你,伙计。祝你的项目好运!问题是我不想只显示坐标,而是显示坐标的实际城市。建议?如果您觉得有帮助,请将其标记为答案并进行投票?非常感谢:)
    $(document).ready(function(){
        $("#getLocation").on("click", function(){
            $.getJSON('https://geoip-db.com/json/geoip.php?jsonp=?') 
            .done (function(location) {
                $('#city').html(location.city);             
            });
        });
    });
    
    if ("geolocation" in navigator) {
        // Do something with coordinates returned
        function processCoords(position) {
            let latitude = position.coords.latitude;
            let longitude = position.coords.longitude;
            let first_div = document.querySelector('div');
            let el_h2 = document.createElement('h2');
    
            // Set h2 text as coordinates
            el_h2.innerText = `Latitude: ${latitude}, Longitude: ${longitude}`;
    
            // Append h2 to document
            first_div.appendChild(el_h2);
        }
    
        // Fetch Coordinates
        navigator.geolocation.getCurrentPosition(processCoords);
    }