Вот простая функция javascript, которая может быть полезна из этой ссылки ... как-то связанной, но мы используем плагин google earth javascript вместо карт
function getApproximateDistanceUnits(point1, point2) {
var xs = 0;
var ys = 0;
xs = point2.getX() - point1.getX();
xs = xs * xs;
ys = point2.getY() - point1.getY();
ys = ys * ys;
return Math.sqrt(xs + ys);
}
Единицы измерения не в расстоянии, а в соотношении относительно ваших координат. Существуют и другие вычисления, которые вы можете заменить функцией getApproximateDistanceUnits ссылка здесь
Затем я использую эту функцию, чтобы увидеть, находится ли долгота широты в пределах радиуса
function isMapPlacemarkInRadius(point1, point2, radi) {
if (point1 && point2) {
return getApproximateDistanceUnits(point1, point2) <= radi;
} else {
return 0;
}
}
точка может быть определена как
$$.getPoint = function(lati, longi) {
var location = {
x: 0,
y: 0,
getX: function() { return location.x; },
getY: function() { return location.y; }
};
location.x = lati;
location.y = longi;
return location;
};
тогда вы можете сделать свое дело, чтобы увидеть, находится ли точка в пределах области с радиусом, скажем:
//put it on the map if within the range of a specified radi assuming 100,000,000 units
var iconpoint = Map.getPoint(pp.latitude, pp.longitude);
var centerpoint = Map.getPoint(Settings.CenterLatitude, Settings.CenterLongitude);
//approx ~200 units to show only half of the globe from the default center radius
if (isMapPlacemarkInRadius(centerpoint, iconpoint, 120)) {
addPlacemark(pp.latitude, pp.longitude, pp.name);
}
else {
otherSidePlacemarks.push({
latitude: pp.latitude,
longitude: pp.longitude,
name: pp.name
});
}