Вхождение координат в окружность
Есть задача - нужно выяснить, входят ли координаты из массива JSON в окружность. Почему то некоторые точки помечает как не входящие, хотя даже наглядно видно что лежат в окружности. Вот так определяется окружность.
var bounds = new ymaps.Circle([[my_bounds.y, my_bounds.x], my_bounds.radius], {},
{ // Опции.
// Цвет и прозрачность заливки.
fillColor: '#7df9ff33',
// Дополнительная прозрачность заливки..
// Итоговая прозрачность будет не #33(0.2), а 0.1(0.2*0.5).
fillOpacity: 0.5,
// Цвет обводки.
strokeColor: '#0000FF',
// Прозрачность обводки.
strokeOpacity: 0.5,
// Ширина линии.
strokeWidth: 2,
// Радиус скругления углов.
// Данная опция принимается только прямоугольником.
borderRadius: 0,
geodesic: true
});
myMap.geoObjects.add(bounds);
и вот так потом перебирается массив с точками
$(json.features).each(function(i, e) {
if(bounds.geometry.contains(e.geometry.coordinates) == false) {
lost.push(e);
delete json.features[i];
}
});
PipleObjectManager.add(json);
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
$(json.features).each(function(i, e) {
if(bounds.geometry.contains(e.geometry.coordinates) == false) {
lost.push(e);
delete json.features[i];
Вы при обходе массива/списка json.features меняете его. Это вообще законно? :)
Если есть такая возможность - обходите массив с конца.