Добавление на карту объектов, попадающих в область видимости
С помощью метода GeoQueryResult можно создавать объекты на карте из их JSON-описания.
В данном примере рассматривается, как добавлять на карту только объекты, попадающие в ее видимую область.
index.html
show_visible_objects.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.1/?lang=ru_RU&apikey=<ваш API-ключ>"
type="text/javascript"
></script>
<script
src="show_visible_objects.js"
type="text/javascript"
></script>
<style>
body,
html {
font-family: Arial;
font-size: 11pt;
padding: 0;
margin: 0;
width: 100%;
height: 95%;
}
p {
padding: 10px;
}
#map {
width: 100%;
height: 85%;
}
</style>
</head>
<body>
<p>
На карту добавляются только метки, попадающие в видимую область
</p>
<div id="map"></div>
</body>
</html>
ymaps.ready(init);
function init() {
var myMap = new ymaps.Map(
"map",
{
center: [55.73, 37.75],
zoom: 8,
},
{
searchControlProvider: "yandex#search",
}
);
// Создадим объекты на основе JSON-описания геометрий.
var objects = ymaps.geoQuery([
{
type: "Point",
coordinates: [55.73, 37.75],
},
{
type: "Point",
coordinates: [55.1, 37.45],
},
{
type: "Point",
coordinates: [55.25, 37.35],
},
{
type: "Point",
coordinates: [55.25, 67.35],
},
]);
// Найдем объекты, попадающие в видимую область карты.
objects
.searchInside(myMap)
// И затем добавим найденные объекты на карту.
.addToMap(myMap);
myMap.events.add("boundschange", function () {
// После каждого сдвига карты будем смотреть, какие объекты попадают в видимую область.
var visibleObjects = objects.searchInside(myMap).addToMap(myMap);
// Оставшиеся объекты будем удалять с карты.
objects.remove(visibleObjects).removeFromMap(myMap);
});
}