Клуб API Карт

Найдено на тему «xml»:
Центр карты относительно точек
Удалённый пользователь
23 ноября 2016, 13:30

Точки новые отображаются. Старые пропадают. Тут всё хорошо. Почему getBounds() получаю null ??

myMap.container.fitToViewport();
objectManager.removeAll(); //удаляю точки
$.ajax({
    url: "map_company.php?t="+n
}).done(function(data) {
    objectManager.add(data); //добавляю новые точки
});
myMap.geoObjects.add(objectManager); //добавляю новые точки
console.log(myMap.geoObjects.getBounds()); //получаю null
myMap.setBounds(myMap.geoObjects.getBounds()); //естественно не центруется
1 комментарий
центр карты,автоцентрирование карты,кластеризация,динамическая загрузка,XML
Отобразить XML из переменной
Удалённый пользователь
20 апреля 2016, 10:51

Добрый час!

Есть сгенерированная переменная содержащая текст XML (метки и их описание, линии...).

Как отобразить на карте данные этой переменной, а не загружая файл по URL через geoXml.load?

Возможно как то преобразовать XML текст в GeoObjectCollection?

1 комментарий
XML,geoXml,GeoObjectCollection
Контент в метке XML
nicotin80
21 апреля 2013, 12:12

Добрый день!

 

Подскажите пожалуйчта как разместить контент (картинку) в метке. twirl#darkblueStretchyIcon

Использую XML файл http://ritorg.by/map/rit.xml

Карта здесь:

http://ritorg.by/map/rit.html

5 комментариев
метка,API 2.0,XML
Ошибка: [object Object]
Александр И.
15 апреля 2013, 09:41

Добрый день!

 

Сегодня возникла проблема с картой, вылезает Ошибка: [object Object], и на 2.0.18, и на 2.0, и на 2.0-stable. Сначала подумал на ошибку в моих xml с объектами, но периодически ошибка пропадает, затем появляется снова. Буквально: то загружается быстро и нормально, жму F5 - долго думает и выдает ошибку и карту без объектов, на тех же xml.

 

Карта: http://drevo-info.ru/map.html

XML: http://drevo-info.ru/map.xml, http://drevo-info.ru/mapgeo.xml, http://drevo-info.ru/maporg.xml

 

Я могу что-то сделать или это глюк API и надо просто запастись терпением и ждать?

6 комментариев
API 2.0,XML
Кластеризация, XML
Гео
9 марта 2013, 10:02

Помогите разобраться с тем, как собрать метки в кластеры при выводе из файла XML

Если выводим элементы из базы данных в карту обычным методом (не XML), то метки в кластеры собираются без проблем http://glebe.la/

Вывод тех же элементов из предварительно сгенерированного файла XML тоже не вызывает затруднений http://glebe.la/solo/

Но, при попытке собрать их в кластеры выводится просто пустая карта http://glebe.la/solo/xmlplusclasster.html

Прежде, чем написать изучил темы здесь, по рекомендациям в одной из них http://clubs.ya.ru/mapsapi/replies.xml?item_no=34514 набран этот код:

<!DOCTYPE html>
<html>
<head>
<title>XML</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://api-maps.yandex.ru/2.0.21/?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">
ymaps.ready(init);

function init() {
var myMap = new ymaps.Map('map', {
center: [55.76, 37.64],
zoom: 2
}),
ymapsmlButton = $('.load-ymapsml');
ymapsmlButton.get(0).disabled = false;
myMap.controls.add('smallZoomControl');

clusterer = new ymaps.Clusterer();
clusterer.options.set({
gridSize: 100,
disableClickZoom: true,
minClusterSize:2,
synchAdd:true
});

var result = [];
url = "http://maps.yandex.ru/export/usermaps/93jfWjoXws37exPmKH-OFIuj3IQduHal/";
ymaps.geoXml.load(url)
.then(function (res) {
res.geoObjects.each(function (geoObject) {
result.push(geoObject);
});
});
clusterer.add(result);
myMap.geoObjects.add(clusterer);
}
</script>
</head>
<body>
<div id="map" style="width:600px; height:400px"></div>
<input type="button" value="YMapsML" class="load-ymapsml" />
</body>
</html>

 

10 комментариев
кластер,кластеризатор,API 2.0,XML
Какое решение будет правильным, если нужны особые геометрические вычисления?
Удалённый пользователь
5 марта 2013, 11:48

Есть задача: карта разбивается на области (геометричекие объекты), в на которых необходимо показывать количесвто точек (placemark) в них. Таких точек большое количество (более 5000 для Москвы).

Сейчас в БД хранятся только адреса таких точек, необходимо будет получить координаты для них, и сохранить их на сервере. Это возможно сделать с помощью сервиса Геокодирования (http://geocode-maps.yandex.ru/1.x/?geocode=Пушкаина, 20), получив XML, достать оттуда координаты. Это будут координаты проекции.

Решить задачу, скажем попадания точки в окуржность, заданную центром (в координатах) и радиусом (в метрах), без использования вашего API, а на стороне сервера, практически невозможно. Так как проекция окружности, не окружность и не эллипс (который можно было бы использовать, зная getBounds() окружности), но не выходит.

Если все координаты хранить в глобальных координатах (toGlobalPixels(...)), тогда и окружность вписывается в квадрат (getBounds()) и соответственно радиус хорошо вычисляется, и можно определить попадание точки в окружность.

Но при этом, когда пользователь добаляет новый объект с адресом, ответ Геокодера в виде XML возвращает только координаты проекции. Есть ли возможность получить их в виде глобальных координат? Подключать API на страницу добавления объектов и вычисялть через него нужные координаты не выход, так как много объектов ежедневно импортируется в систему в виде XML данных, и обрабатывается только на сервере.

 Подскажите, пожалуйста, выход из такой ситуации, возможно кто-то решал подобные задачи, но я не нашел здесь ничего подобного. Спасибо!

6 комментариев
XML,координаты,геокодирование
Семь кругов ада с XML+Балун+Кластер
Удалённый пользователь
21 декабря 2012, 04:27

 
Есть XML, в нем данные такого типа:

 

             <ymaps:GeoObject>
                <gml:name>Имя </gml:name>
                <gml:metaDataProperty>
                    <ymaps:AnyMetaData>
                       <url>"someurl.ru"</url>
                       <image>//someImage.jpg</image>
                    </ymaps:AnyMetaData>
                </gml:metaDataProperty>
                <gml:Point>
                    <gml:pos>48.688514 15.758255</gml:pos>
                </gml:Point>
            </ymaps:GeoObject>

 
 На основе этих данных, при помощи шаблона формируется содержимое балуна:
 

                 <repr:balloonContentStyle>
                    <repr:template>#balloonTemplate</repr:template>
                </repr:balloonContentStyle>
            </repr:Style>     
       
            <repr:Template gml:id="balloonTemplate">
                <repr:text><![CDATA[            
                        <div style="font-size:15px;">
                            $[name]
                             <a href="$[metaDataProperty.AnyMetaData.address]"></a>
    <img src="http:$[metaDataProperty.AnyMetaData.image]" alt="avatar" />]]></repr:text>
            </repr:Template>
        </repr:Representation>

 
И все это дело загоняется в кластер:
 

                     // Создаем кластеризатор
                    clusterer = new ymaps.Clusterer();
                    // Настройки кластера
                    clusterer.options.set({
                        margin: [20],
                        gridSize: 40,
                        minClusterSize: 2
                    });                
                    url = "http://SomeUrl.ru/SomeXML.xml";
                    ymaps.geoXml.load(url)
                     .then(function (res) {
                        result = [];
                        //Добавляем балуны в массив
                        res.geoObjects.each(function (geoObject) {
                            result.push(geoObject);
                        });
                        //Добавляем массив в кластер
                        clusterer.add(result);
                    });
                    
                    // Добавляем кластер на карту.
                    myMap.geoObjects.add(clusterer);

 

Понятное дело, если бы все это работало нормально, я б сюда не писал. Но имеется пара проблем, которые не дают мне спать ночами (буквально), а именно:

  • Данные не передаются в балун, невероятным для меня образом отражается только имя ($[name]), даже если удалить все, что находится в repr:text
  • Не применяются также стили, кодом которых я решил не перегружать эту тему.


 

Надеюсь на помощь и понимание.

 

 

8 комментариев
кластеризатор,API 2.0,XML
Запихнуть XML в кластер
Удалённый пользователь
19 декабря 2012, 00:34

Здравствуйте.

Есть одна карта. На неё из XML файла подгружаются балуны. Их много, порядка нескольки тысяч, так что нужно все это дело кластеризовать.

Тут я наткнулся на проблему -- как передать балуны из XML в кластер?

Вот пример кода, который не работает :

 

                // Создаем кластеризатор
                clusterer = new ymaps.Clusterer();

                // Настраиваем опции
                clusterer.options.set({
                    gridSize: 100,
                    disableClickZoom: true,
                    minClusterSize:10,
                    synchAdd:true
                });
                //Добавляем балуны в кластер
                   
                url = "http://someurl.ru/other/someXML.xml";
                ymaps.geoXml.load(url)
                 .then(function (res) {
                    //Добавляем коллекцию геообъектов в кластер 
                     clusterer.add(mygeoObjects);
                 });
                // Добавляем кластер на карту.
                myMap.geoObjects.add(clusterer);

 

Надеюсь на адекватность и вашу помощь.

5 комментариев
кластер,кластеризатор,балун,XML
Пример: Загрузка и отображение geoXML
tekunova
2 ноября 2012, 15:36
Пример: Загрузка и отображение geoXML

В документации к API Яндекс.Карт есть пример «Загрузка и отображение geoXML». В этом примере нажатием на кнопку объекты на карту выводятся из xml-файла. Мы его немного доработали по просьбе пользователя клуба: повторное нажатие на кнопку теперь позволяет удалить эти же объекты с карты.



Посмотреть пример в новом окне.

API 2.0,примеры,XML
добавление объектов из файла XML в геоколлекцию
project-xf
27 мая 2012, 14:36

Здравствуйте, ситуация такова:

есть у меня на карте некая геоколлекция, например MyCollection1, с тремя метками

Затем, я считываю данные из некоего XML  файла, где написано

 

 
<ymaps:GeoObjectCollection>
- <gml:featureMembers>
- <ymaps:GeoObject>
  <gml:name>Многоугольник1</gml:name>
  .......
  </ymaps:GeoObject>
- <ymaps:GeoObject>
  <gml:name>Многоугольник2</gml:name>
  ......
  </ymaps:GeoObject>
  </gml:featureMembers>
  </ymaps:GeoObjectCollection>
т.е гружу 2 объекта. Делаю как в примерах

 ymaps.geoXml.load(.......).then(function (res) {
                    myMap.geoObjects.add(res.geoObjects);
 
....
Оно естественно, грузится в некую geoObjects,не имеющую никакой связи с MyCollection1
если я пишу по-другому
ymaps.geoXml.load(.......).then(function (res) {
                    MyCollection1.add(res.geoObjects);
....
то оно грузится в MyCollection1, но, как я понимаю, на правах вложенной коллекции.
Как мне получить объекты Многоугольник1 и Многоугольник2 на том же уровне вложенности, что и уже лежащие в
MyCollection1 метки?
мутить конструкцию вида
res.geoObjects.each(function (geoObj) {
  geoObj.setParent(MyCollection1)
                })  ?
как-то вроде неоптимально выходит, да и результат странный
или есть более элегантный способ?

Кстати, новый API обрабатываетполигоны с внутренними контурами,те. <gml:interior> успешно обрабатывается, за что большое спасибо :)

5 комментариев
коллекции,XML
Как повесить обработчик на ВСЕ метки на карте, если они из XML файла?
reyni
9 сентября 2011, 00:51

Метки на карту добавляются из XML файла. Мне нужно обработать действие при клике метку. Где-то в документации, видел пример как можно повесить на одну, но и это был пример когда метка добавлялась скриптом, а у меня XML (YMapsML)



Реально осуществить мой вопрос, как?

3 комментария
метка,XML
Новости на карте.
Удалённый пользователь
19 июня 2011, 12:42

Доброго времени суток, в одном из примеров, есть добавление маркеров с новостями на карту - http://news.yandex.ru/map/Moscow/news.html. Я так понимаю координаты точек, тексты, ссылки на полные новости беруться из файла http://news.yandex.ru/export/map_Moscow.xml. Но доступ к нему закрыт, можно ли как-то получить его исходник?

 

5 комментариев
API 1.x,XML
Как преобразовать YMapsML объекты в XML формат?
purgenetik
21 марта 2011, 04:00

Каким образом можно преобразовать созданные в API YMapsML объекты в XML код, который потом можно сохранить и использовать для обратной загрузки в API?

Везде в примерах приводится операция XML -> YMapsML, например тут http://api.yandex.ru/maps/ymapsml/examples/exportusermap.html, но как решить обратную задачу: созданы объекты и маршруты на карте - нужно выгрузить это наружу для сохранения?

"Мою карту" выгрузить можно (через  http://maps.yandex.ru/export/usermaps/mapID), как это сделать через API?

Конкретная задача: нужно выгрузить маршрут, построенный Router-ом, в формате XML или любом другом, который позволил бы позже загрузить и нарисовать этот маршрут без повторного обращения к геокодеру и маршрутизатору. Конвертация в JSON (через JSON.stringify(router)) не проходит - ( ошибка: too much recursion)

В руководстве языка (http://api.yandex.ru/maps/ymapsml/doc/guide/concepts/usage.xml) написано, что YMapsML - удобное способ хранения информации, но удобство какое-то одностороннее, как из готового xml файла загрузить YMapsML  объекты - сказано, а как осуществить обратную операцию - нет. Можно, конечно, ручками это все делать, но о каком удобстве тогда можно говорить?

2 комментария
XML,API 1.x,JSON,YMapsML
Не могу подключить сгенерированый xml файл
Удалённый пользователь
7 сентября 2010, 11:45

Здраствуйте. Уменя проблема с подключением к карте сгенерированого xml файла средствами php. 
Пример взял отсюда:  http://webmap-blog.ru/yandex-maps/api-yandeks-kart-–-risuem-poliliniyu-i-soxranyaem-ee-v-baze-dannyx-mysql#more-572.

Я поменял ссылку на xml-файл и разместил его на своем хосте (сгенерированую xml-ку не менял). На сайте где я взял пример все работает.

Ошибка началась когда я поменял ссылку http://webmap-blog.ru/examples/drawline/viv-xml.php на http://testsoft.idhost.kz/viv-xml.php.  

Встречал схожие темы, писали что там файл должен лежать на публичном сервере. Как решить проблему подскажите?

Кто поможет заранее спасибо.

3 комментария
XML,API 1.x,YMapsML
Невалидный XML для DataSet в ответе геокодера на запрос ?
Удалённый пользователь
12 июля 2010, 07:20

Всем доброго времени суток. Пишу на c#, использую API геокодера. Столкнулся с проблемой. При обращению к геокодеру для определения координат, например, так:  http://geocode-maps.yandex.ru/1.x/?geocode=Екатеринбург+Мира+29a&key=[API ключ]

получаю в ответ xml с инфой о двух найденных точках, НО! у второй точки ветка DependentLocality принадлежит сама себе, в итоге XML не загружается в DataSet. Это глюк геокодера? Или это нормальный ответ и придется XML руками разбирать?

4 комментария
XML,API 1.x,геокодирование