Клуб API Карт

geoQuery и xml

Пост в архиве.

С помощьюе geoQuey добавляю большое количество меток только в видимую область карты:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>Вывод файла YMapsML на карту</title>    

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>

    <script src="http://api-maps.yandex.ru/2.0.31/?load=package.full&lang=ru-RU" type="text/javascript"></script> 

    <script type="text/javascript">

ymaps.ready(init);

 

function init() {

    // Создаем карту.

    var myMap = new ymaps.Map("map", {

        center: [55.76, 37.64],

        zoom: 10,

        behaviors: ["default", "scrollZoom"]

    });

    myMap.controls

.add('zoomControl')

                    // Линейка масштаба

.add('typeSelector')

                    .add('mapTools');

var trafficControl = new ymaps.control.TrafficControl();

myMap.controls

.add(trafficControl);

    

    var objects = ymaps.geoQuery(ymaps.geoXml.load("http://douscare.narod.ru/xml/msk.xml"))

        

    

        // Найдем объекты, попадающие в видимую область карты.

    objects.searchInside(myMap)

        // И затем добавим найденные объекты на карту.

        .addToMap(myMap);

    

    myMap.events.add('boundschange', function () {

        // После каждого сдвига карты будем смотреть, какие объекты попадают в видимую область.

        var visibleObjects = objects.searchInside(myMap).addToMap(myMap);

        // Оставшиеся объекты будем удалять с карты.

        objects.remove(visibleObjects).removeFromMap(myMap);

    });

}

 

</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>

 

Вроде бы работает, но в консоли прописана некая ошибка:

 

и потерялись стили меток и баллунов.

Как вернуть стиль?

2 комментария

и как ко всему этому прикрутить кластеризатор? :)

Добавил кластеризатор.

Теперь загружается значительно быстрее чем без geoquery и clusterize

но как вернуть содержимое балунов и прочие стилизованные аттрибуты?

var result = ymaps.geoQuery(ymaps.geoXml.load("http://douscare.narod.ru/xml/YMLfromVBA_u2.xml"))

    .applyBoundsToMap(myMap);

 

    myMap.geoObjects.add(result.clusterize());