Клуб API Карт

Не работает добавление меток через созданный мною xml

serezhafin
4 ноября 2014, 08:29

Собственно, имеется apache2, на нем всего 3 файла:

 

 

 <?xml version="1.0" encoding="windows-1251"?>
<ymaps:ymaps xmlns:ymaps="http://maps.yandex.ru/ymaps/1.x" xmlns:repr="http://maps.yandex.ru/representation/1.x" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maps.yandex.ru/schemas/ymaps/1.x/ymaps.xsd">
    <ymaps:GeoObjectCollection>
        <gml:name>Объекты карте</gml:name>
        <gml:featureMembers>
            <ymaps:GeoObject>
                <gml:name>Имя</gml:name>
                <gml:description>Описание</gml:description>
                <gml:Point>
                    <gml:pos>37.63 55.75</gml:pos>
                </gml:Point>
            </ymaps:GeoObject>
        </gml:featureMembers>
    </ymaps:GeoObjectCollection>
</ymaps:ymaps>

 

 

 <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<script src="map.js" type="text/javascript"></script>

<div id="map" style="height: 600px; width: 400px;"></div>

 

 

 var map;
test();

function test()
{
    ymaps.ready(initializeMap);
}

function initializeMap(){
    map = new ymaps.Map("map", {
        center: [55.76, 37.64],
        zoom: 6,
        controls: ['geolocationControl', 'fullscreenControl', 'zoomControl']
    });
    
    ymaps.geoXml.load("tests.xml").then(function (res) {
        map.geoObjects.add(res.geoObjects);
        }, function (error) {
            alert(error);
            });
}

 Проблема в том, что созданный мной, и заполненный по образу и подобию этого, файл не хочет интерпретироваться (выводит alert('Object object')), хотя если скачать с сервера яндекс указаный выше xml, все отлично проходит. В чем может быть дело?

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

 

(выводит alert('Object object'))

Зачем alert-то? Алертами для отладки пользовались еще наши дедушки, как собственно и "windows-1251"

Первым делом надо вывести ошибку в нормальном виде через console.log, вместо того что возвращает метод toString – [Object object], который alert вызывает на объектах

Возможно у вас там таймаут или невалидный xml

Алерт и windows-1251 сделал, потому что тупо скопировал с примера, который лежит в документации к YMapsML, насчет валидности xml, то тут тоже странность возникает - весь xml взял оттуда же. А можно подробнее насчет таймаута? Сделал вывод через console.log, как Вы и сказали - показывает вот что: "Object { status: "500", message: "internal server error" }"

 

Дайте ссылку на ваш xml

Мы к сожалению не можем смотреть логи по ip,

только по доменным именам.

Думаю дело в кодировке.

Попробуйте отдавать utf8 или прописать кодировку в заголовок content-type

 

У меня сейчас приходят кракозябры

 

curl http://178.62.173.171/tests.xml -i
HTTP/1.1 200 OKDate: Wed, 05 Nov 2014 11:38:02 GMTServer: Apache/2.2.22 (Debian)Last-Modified: Tue, 04 Nov 2014 05:18:47 GMTETag: "4040a-315-50701990d012f"Accept-Ranges: bytesContent-Length: 789Content-Type: application/xmlhttp://maps.yandex.ru/ymaps/1.x" xmlns:repr="http://maps.yandex.ru/representation/1.x" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maps.yandex.ru/schemas/ymaps/1.x/ymaps.xsd">            ??????????                                    ???                ?????????                                    37.63 55.75                                        %

 

Точно то же самое приходит и если запрашивать http://api.yandex.ru/maps/doc/ymapsml/1.x/examples/xml/simpleobject.xml отсюда. В общем, мистика какая-то. Сейчас есть 3 абсолютно одинаковых файла:

http://blog.faciem.ru/faciem/qwerty.xml - (создан мной вчера, работает)

http://blog.faciem.ru/faciem/simpleobject.xml - (скачан мной вчера по ссылке выше, работает)

http://blog.faciem.ru/faciem/testing.xml -

(создан мной только что, сворован из файла выше, не работает)

Все 3 файла абсолютно одинаковы с точностью до бита (проверил в hex-редакторе)

Как такое может быть? Уже даже и на другой сервер закинул без голого ip.

Проверяю тут - http://178.62.173.171/index.html

Опытные товарищи говорят что у вас в заголовке xml кодировка windows-1251 а сам контент отдается в utf8

Спасибо за помощь, но все равно это как-то странно все. Решил пойти по пути наименьшего сопротивления и использовать geoJSON - он намного намного проще. Еще раз благодарю.