Клуб API Карт

Заголовок не указан

Сергей Миронов
27 января 2010, 17:41

Как-то писал уже в какой-то теме... ответа не было. Решил отдельную тему создать по проблеме.

В "справочнике по языку YMapsML" есть описание по использованию в подгружаемом xml полигонов.

Дело в том, что это все работает пока используется система координат яндекса... т.е. координаты вида:

<gml:posList>37.178027 55.486953 38.040535 55.486953 38.040535 56.018499 37.178027 56.018499</gml:posList>

но я на своей карте использую координаты в таком виде:

0.20189211871519036 0.1350728618295567 0.20195315480277715 0.13449301899748223 0.20082398718242161

это только пример... тут полигон не замкнут, как того требует справочник

и в функции формирую систему координат так:

var cs = new YMaps.CartesianCoordSystem(new YMaps.Point(0, 1), new YMaps.Point(1, 0), 36770, 8);
var map = new YMaps.Map(document.getElementById("YMapsID"),{ coordSystem: cs });

 

Подгружаю xml и на карте какая-то абракадабра! Линии пересекаются... точки левые выходят.

Попробовал сэмулировать вывод такого полигона уже в системе координат яндекса - все вышло замечательно.


Это проблема или глюк?

3 комментария
Подписаться на комментарии к посту
При использовании своей координатной системы загружать данные с помощью YMapsML не получится. Парсер YMapsML "умеет думать" только в географической координатной системе.

Подгружайте данные, например, в формате JSON.
Сергей Миронов
27 января 2010, 20:49
а с метками же все нормально
С метками тоже не до конца нормально все. Парсер возвращает JavaScript-код.
Взглянем на этот пример:
http://api.yandex.ru/maps/ymapsml/examples/simpleobject.html

Код, для отображения метки вернется следующий:
var p=new YMaps.Placemark(new YMaps.GeoPoint(37.63,55.75), {style:''});p.name='Имя';p.description='Описание';
Как видно, используется географическая система координат.

Ломаные еще дополнительно кодируются.