現在の場所(おそらく緯度と経度)を取得して、いくつかの変換の1つを適用できます。
- 最も近い10マイル(または必要なレベルの精度)に丸めます
- 各緯度と経度の値を最も近い10秒(または必要なレベルの精度)に丸めます
- 緯度と経度の両方にランダムな値を追加して、+ /-5マイル(または必要なレベルの精度)にします。
緯度/経度の値が度単位の場合、次の関数を使用して、最も近い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