Клуб API Карт

Скорость загрузки из YmapsML

douscare
11 октября 2013, 15:24

Добрый день,

Есть xml файл в котором содержится более 5000 строк и те только по москве, в будущем туда добавяться еще порядка 10 крупных городов.

Как ускорить загрузку?

Сейчас загружается так:

 

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

<head>

    <title>Примеры YMapsML. Создание меню для групп загруженного YMapsML.</title>

    <meta http-equiv="Content-Type" content="text/html" />

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

    <script src="http://yandex.st/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        window.onload = function () {

            ymaps.ready(function () {

 

                // Создание экземпляра карты

                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)

        // В конструкторе элемента управления можно задавать расширенные

        // параметры, например, тип карты в обзорной карте.

.add(new ymaps.control.MiniMap({

type: 'yandex#publicMap'

        }));

                // Загрузка YMapsML-файла

                ymaps.geoXml.load("ht/xml/msk.xml")

                        .then(function (res) {

                            res.geoObjects.each(function (item) {

                                addMenuItem(item, myMap);

                            });

                        },

                        function (error) {   // Вызывается в случае неудачной загрузки YMapsML-файла

                            alert("При загрузке YMapsML-файла произошла ошибка: " + error);

                        });

 

                // Добавление элемента в список

                function addMenuItem(group, map) {

                // Показать/скрыть группу геообъектов на карте

                    $("<a class=\"title\" href=\"#\">" + group.properties.get('name') + "</a>")

                        .bind("click", function () {

                            var link = $(this);

                            // Если пункт меню "неактивный", то добавляем группу на карту,

                            // иначе - удаляем с карты

                            if (link.hasClass("active")) {

                                map.geoObjects.remove(group);

                            } else {

                                map.geoObjects.add(group);

                            }

                            // Меняем "активность" пункта меню

                            link.toggleClass("active");

                            return false;

                        })

                        // Добавление нового пункта меню в список

                        .appendTo(

                            $("<li></li>").appendTo($("#menu"))

                        );

                }

            });

        }

    </script>

</head>

 

<style type="text/css">

        /* Оформление меню (начало)*/

 

    #menu {

        list-style: none;

 

        margin: 0;

        padding: 0;

    }

 

    #menu a {

        text-decoration: none;

 

        border-bottom: dashed 1px;

    }

 

    a.active {

        color: #000;

    }

 

        /* Оформление меню (конец)*/

</style>

 

<body>

<table>

    <tr>

        <td>

            <div id="map" style="width:800px;height:700px"></div>

        </td>

        <td valign="top">

            <ul id="menu"></ul>

        </td>

    </tr>

    </table>

</body>

 

</html>

3 комментария
Подписаться на комментарии к посту

Никак. Такие файлы загружаются только целиком.

Требуется изменять сам принцип подгрузки новых обьектов (обсуждалось вчера)