Клуб API Карт

Показать район города

Евгений Хрущ
24 сентября 2015, 02:58

Как сделать обведённым район города? Не нашёл об этом в справке, но на одном из сайтов видел, что показывается. Покопался - они передают xml в метод

ymaps.geoXml.load(xmllink)

но этот xml фактически пустой, там только координаты углов...

Подставив их xml (передаю их ссылку на их xml), я получил желаемый результат, но когда я передаю в метод ссылку на свой xml-файл (этот же самый xml, сохранил его себе на комп и расшарил через сайт), находящийся на моём локальном, пока, сайте, выдаётся ошибка загрузки 500 "internal server error". Ну да, не видится извне. Расшарил вовне. Ошибка не выдаётся больше, но и район не выделяется.

Основной вопрос: как можно получить данный xml для своих районов? Не нашёл ни какой справочной информации об этом. Вот содержимое их xml:

<?xml version="1.0" encoding="UTF-8"?>
<ym:ymaps
xmlns:ym="http://maps.yandex.ru/ymaps/1.x"><Representation
xmlns="http://maps.yandex.ru/representation/1.x"
xmlns:gml="http://www.opengis.net/gml"><View><boundedBy
xmlns="http://www.opengis.net/gml"><Envelope><lowerCorner>84.9308285606079
56.455668313247</lowerCorner><upperCorner>85.14904468152517

56.493937332930784</upperCorner></Envelope></boundedBy></View></Representation><ym:GeoObjectCollection

xmlns="http://www.opengis.net/gml"><featureMembers/></ym:GeoObjectCollection></ym:ymaps>

 

9 комментариев
Подписаться на комментарии к посту
geoXml.load загружает в вашем случае полигон и добавляет его в коллекцию. Зачем пытаться загружать его с локального компьютера совсем не понятно.

Для достижения желаемого результата Вы можете создавать полигон через myPolygon = new ymaps.Polygon(); и добавлять его на карту используя map.geoObjects.add(myPolygon).
Евгений Хрущ
25 сентября 2015, 02:23

Где именно задаётся полигон? Я вижу только нижний угол и верхний угол. Я могу эти два угла добавить в myPolygon, что бы получить район города?

С локального компьютера я его загружал что бы показать, что он сначала не загружается, а затем загружается, но район не показывается (ошибка 500 не выдаётся, вообще ни какая не выдаётся, возращается пустой результат).

load загружает как-то созданный пользователем xml. Неизвестный нам пользователь на секретном сайте это сделал.

АПИ карт предоставляет геометрию райнов, но можете попробовать найти ее на http://data.esosedi.org.

Евгений Хрущ
26 сентября 2015, 08:11

На сайте http://data.esosedi.org/ далеко не все районы города Томска.

Сайт не секретен, просто не хотел, что бы восприняли как рекламу. Если он нужен, то вот ссылка http://neagent.info/tomsk/prodazha/prodam-odno-komnatnuyu-kvartiru/?page=2 (навести на название района и щёлкнуть "показать")

Вот ссылка на один из xml, который они передают: http://neagent.info/xml/ymaps/tomsk/leninskiy/?1.85

Вот содержимое geomap.xml, которое приходит от yandex:

/**/id_14430517426864912464({"error":null,"response":{"ymaps":{"Representation":{"View":{"boundedBy":{"Envelope":{"lowerCorner":"84.90702107889685 56.48473648911642","upperCorner":"84.99950364573036 56.57052383411613"}}},"Style":{"id1000126":{"polygonStyle":{"fillColor":"ff000022","strokeColor":"ff0000ff","strokeWidth":"3"}}}},"GeoObjectCollection":{"featureMembers":[{"GeoObject":{"metaDataProperty":{"AnyMetaData":[{"number":[{"value":"126"}]}]},"name":"Ленинский","description":"Район расположен к северу от центра города. Назван в честь Владимира Ленина, вождя мирового пролетариата. Включает в себя микрорайон Каштак, исторические районы Пески, Заозеро, Черемошники, Свечной, Сосновый Бор. ","Polygon":{"exterior":{"polylod":{"polyline":"DZQPBZwyXwP3KAAAGf3__zoOAADK_f__fQgAAEL9__-OAgAAjf___4IBAADx____mgYAAOoAAAADAgAA3P___7gBAABL____iwAAANv-___a____1f7__4j-__9F_f__ilIAADXd___zDAAAEvv__5QUAAD8-f__2woAAHT9__9SDAAAwf3__30TAAAb_f__SAUAAIcBAACcBAAA2QIAAKQCAAA5AgAArAAAABoDAAD1____EQEAAHgBAADO_P__IgEAAHj___8IGwAAOPn__zQNAACLAwAAvgwAAO4JAAAPEQAAv_r__2f9___a_P__fQUAAHT9__9R_f__u_3__6scAADE8f__EgUAAO7____JBQAAuvn__3fy__9r-___Y-z___bT___O-v__NfX__4QCAABl-v__tQYAAM_7___FCgAAG_3__939__8r____SQYAAEr4__-t-v__9_H__1cBAABr-v__Dvv__-j___-eBQAAw-j__1D8__8E_P__QwIAAKz6___F5v__m_L__-b8__87AAAACPD__z73__9b_P__7_7__9T3__81-v__Tfr__xT9__8K-P__RP3__6r4___B_f__wfn__5H9__9kAgAADv7__x7w__-C-v__y_j__4QFAAAO9P__uPn___nz___SBAAAlPf__3j___-h-f__oAAAALX4__-BAgAAgfL__0cAAADV____3_X__0sAAABK9v__uvv__yv3__9ZAgAAg_j__6EAAACL9f__x_3__0j4__8rAAAAY_v__yb9__-X_f__Ef3__wAAAAD1____uf___z3-___u_____Pz__0j____S_f__3f7__5P-___d_v__tf___6j-__9iAQAA4vf__9f5___6____WPr__3L-__9N-v__OwAAAA3l__-jBAAAPvD__zc5AADer___wT4AAAU9AADwUwAAOe3__-8jAABu1___aCAAADzv___2EQAAI_n__wcoAAA=","levels":"ALMOLOOINLOKJNLOHJMKMOJNLJKJFKKJLKHJOHKLKLILKJLKDMLMLNLPOKLHKJKMMLHOKLMLMHMNOOMOJNIMNLEHGGJLIA","maxlevel":"P"}}},"style":"#id1000126"}

 Можно ли как-то сохранять эту шифровку и передавать в ymaps для выделения районов?

Для начала свяжитесь с создателем этих данных - неаагентом.

Евгений Хрущ
28 сентября 2015, 03:06

а разве не Яндекс - создатель этих данных? Как вы это определили?

Я не хочу пользовать данными неагента. Я просто хочу сделать выделение районов наподобие как у них, через Яндекс. Или вы хотите сказать, что у Яндекса нет таких данных?

Яндекс не предоставляет такие данные - дальше регионов дело пока не зашло. А ребята, судя по всему, взяли их из OSM.

Евгений Хрущ
30 сентября 2015, 03:36

хорошо

Просто ради интереса: что за ключевое слово такое "polylod", которое лежит внутри "exterior"? Я не нашёл такого ни в справке, ни где бы то ни было ещё. А поисковик Яндекса при запросе "ymaps polylod" меня вообще поправляет на "polygon" и если запретить ему это, то не находит ни одной страницы.

И как я могу свои координаты зашифровать подобным образом. Об этом где-нибудь можно найти информацию?

Это "старый" yml. Как (возможно) вы знаете - yml приходит на клиент "через" сервера яндекса, которые входной поток немного обрабатывают.

В частности это - предварительно засимплифицированная линия.

! В версиях АПИ >=2 эта информация полностью игнорируется.