是否可以根据用户的地理位置替换网页中的图像?

Is it possible to replace an image in a web page based on the user's geolocation?

我一直在 Google 上努力寻找这方面的一些信息,但我还没有找到任何信息。无论如何,我想做的是根据用户位置更改图像源(img 标签或背景图像 css 属性)。

希望利用 HTML5 地理定位功能,然后 运行 将其位置与多个设置位置(作为变量)进行比较的条件语句。该功能找到用户最近的设置位置,然后根据结果替换图像。我认为这可以用 latLong 来完成——希望只是将数字与运算符函数进行比较。

我相当确定这将通过 Jquery/Javascript 完成 - 根据函数的结果将必要的 HTML/CSS 注入页面。只是仍然围绕着它。

有没有人以前做过或看过类似的东西,这样我就可以查看代码的结构,从而验证我的假设? JS 不是我最大的强项,任何建议或帮助都是最有帮助的。

这可以使用 Google 的地理编码 API (https://developers.google.com/maps/documentation/business/geolocation/) or the HTML5 geolocation functionality (http://diveintohtml5.info/geolocation.html)

navigator.geolocation.getCurrentPosition(function(data) {
  // data.coords.latitude & data.coords.longitude
});

是的,这绝对有可能。看看这个 jsfiddle:

var body = document.body;

function locate() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
            if(position.coords.latitude > 50 && position.coords.longitude > 15) {
                body.innerHTML = 'You might be in Europe';
                console.log('You might be in Europe');
            } else {
                body.innerHTML = 'You are probably not in Europe';
                console.log('You are probably not in Europe');                                          
            }
        });
    } else {
        console.log(false);
    }
};

locate();

当您 运行 上面的示例时,请确保在询问您的位置时单击“允许”,并等待一秒钟来找到您。

这只是一个俗气的例子,但如您所见,它根据纬度和经度粗略估计您的位置,并以语句的形式提供输出(但是,您可以轻松地将其设为 URL 图片等)

这里有一些资源供您深入研究 API:

我对您的建议是开始使用谷歌搜索。这个有很多实现。

编辑

还有一件事...要真正理解API,我建议使用控制台没完没了。例如,您可以这样做:

navigator.geolocation.getCurrentPosition(function(position) {
    console.log(position);
});

然后在您使用的任何浏览器中打开您的控制台,然后检查该对象。