我目前正在使用html 5的地理位置功能。一切正常,它是一个很好的功能。然而,由于反直觉这可能听起来,我希望它获得的位置不太准确。
目前,它正在获取我的确切位置,并且,由于数据隐私,我不想要这个。有没有办法让它不那么准确?
我目前正在尝试创建一个名为getRandomGeoValue的函数,如下所示:
function getRandomGeoValue(geoValue)
{
}
该函数采用地理值(纬度或经度)并返回随机不准确的地理值。我正在尝试使用Javascripts Math.random()函数,但结果太不准确了。
理想情况下,不准确度大约为17英里。
答案 0 :(得分:2)
您可以获取当前位置(可能是纬度和经度)并对其应用以下几种转换之一:
如果您的纬度/经度值以度为单位,则可以使用此功能将其四舍五入到最接近的N英里:
function roundPosition(lat, lon, roundMiles) {
// 69.11 miles per degree of latitude
var roundFactor = 69.11 / roundMiles;
lat = Math.round(lat * roundFactor) / roundFactor;
// miles in 1 degree of longitude = 69.11 * cos(latitude in radians)
var latRadians = (lat / 180) * Math.PI;
var milesPerDegreeLong = 69.11 * Math.cos(latRadians);
roundFactor = milesPerDegreeLong / roundMiles;
lon = Math.round(lon * roundFactor) / roundFactor;
return({latitude: lat, longitude: lon});
}
此函数返回一个具有新的舍入纬度和经度作为属性的对象。
使用示例:
var latitude = 69.2;
var longitude = 180.9;
var newPos = roundPosition(latitude, longitude, 17);
// newPos.latitude and newPos.longitude contain the new rounded values