Попадание точек в окружность
С помощью класса GeoQueryResult можно формировать набор меток на карте из JSON-описаний их геометрий.
В данном примере показано, как проверять попадание объектов в окружность и изменять их опции через GeoQueryResult.
index.html
placemarks_in_circle.js
<!DOCTYPE html>
<html>
<head>
<title>Примеры. Попадание объектов в окружность.</title>
<meta
http-equiv="Content-Type"
content="text/html; charset=utf-8"
/>
<!--
Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
-->
<script
src="https://api-maps.yandex.ru/2.0.31/?load=package.standard,package.geoObjects,package.geoQuery&lang=ru-RU&apikey=<ваш API-ключ>"
type="text/javascript"
></script>
<script
src="placemarks_in_circle.js"
type="text/javascript"
></script>
</head>
<style>
body {
font-family: Arial;
font-size: 11pt;
}
</style>
<body>
<p>Перетаскивайте круг и следите за цветом меток</p>
<div id="map" style="width:400px; height:300px"></div>
</body>
</html>
ymaps.ready(init);
function init() {
var myMap = new ymaps.Map("map", {
center: [55.43, 37.75],
zoom: 8,
}),
objects = ymaps
.geoQuery([
{
type: "Point",
coordinates: [55.73, 37.75],
},
{
type: "Point",
coordinates: [55.1, 37.45],
},
{
type: "Point",
coordinates: [55.25, 37.35],
},
])
.addToMap(myMap),
circle = new ymaps.Circle([[55.43, 37.7], 10000], null, {
draggable: true,
});
circle.events.add("drag", function () {
// Объекты, попадающие в круг, будут становиться красными.
var objectsInsideCircle = objects.searchInside(circle);
objectsInsideCircle.setOptions("preset", "twirl#redIcon");
// Оставшиеся объекты - синими.
objects
.remove(objectsInsideCircle)
.setOptions("preset", "twirl#blueIcon");
});
myMap.geoObjects.add(circle);
}