gpt4 book ai didi

javascript - 对于没有 SSL 的网站,getCurrentPosition() 的免费替代品?

转载 作者:行者123 更新时间:2023-11-29 21:17:33 25 4
gpt4 key购买 nike

首先,我知道这个 post存在。我需要一个免费(或非常便宜)的解决方案,所以我再次问这个问题。

getCurrentPosition() and watchPosition() are deprecated on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS.

Chrome 不允许在没有 SSL 的网站上使用 getCurrentPosition()。

Google Maps API 可以解决这个问题,但它的 usage limits太低了。 (我们正在管理一个每天页面浏览量超过 400,000 次的新闻门户网站)。

有谁知道 getCurrentPosition() 的免费(或非常便宜)替代品吗?

最佳答案

您可以使用 https://ipinfo.io API(这是我的服务)。它每天最多 1,000 个请求是免费的(有或没有 SSL 支持)。它为您提供坐标、名称等信息。这是一个例子:

curl ipinfo.io
{
"ip": "172.56.39.47",
"hostname": "No Hostname",
"city": "Oakland",
"region": "California",
"country": "US",
"loc": "37.7350,-122.2088",
"org": "AS21928 T-Mobile USA, Inc.",
"postal": "94621"
}

这是一个示例,它使用与您从 getCurrentPosition() 获得的内容相匹配的 API 响应构造一个坐标对象:

$.getJSON('https://ipinfo.io/geo', function(response) { 
var loc = response.loc.split(',');
var coords = {
latitude: loc[0],
longitude: loc[1]
};
});

下面是一个详细示例,展示了如何将其用作 getCurrentPosition() 的回退:

function do_something(coords) {
// Do something with the coords here
}

navigator.geolocation.getCurrentPosition(function(position) {
do_something(position.coords);
},
function(failure) {
$.getJSON('https://ipinfo.io/geo', function(response) {
var loc = response.loc.split(',');
var coords = {
latitude: loc[0],
longitude: loc[1]
};
do_something(coords);
});
};
});

关于javascript - 对于没有 SSL 的网站,getCurrentPosition() 的免费替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38909338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com