Pull to refresh

Comments 75

Спасибо за первый пункт!

«Яндекс вправе по своему усмотрению отказать в доступе к Сервису без объяснения причин.»
На этом можно было, по сути, и закончить :)
Стесняюсь спросить, сколько вы предоставляли бесплатных сервисов пользователям.
Стесняюсь вам ответить, но при таком раскладе есть неиллюзорный шанс получить не работоспособный бесплатный сервис для пользователей.

Все ближе склоняюсь к идее реализовать поддержку минимум двух картографических сервисов.
И ваш бесплатный сервис для пользователей будет поставляться с обязательством не отключать пользователей никогда и ни при каких условиях?
Ну, скажем, в рамках договора-оферты.
Нарушил правила — забанил. Не нарушил, но «дико бесит, хочется взять и забанить» — низзя!
вы знаете, яндекс так же и с платными сервисами поступает…
s/Яндекс/любая другая компания
любая-другая-компания не брала мои деньги в заложники и не требовала за них выкуп ;)
Из этого не следует, что любые-другие-компании так не поступают.
Кстати да, после таких веселых побегушек с целью доказать, что ты не баран, я полностью отказался от ЯД.
А вот еще совет — если вы сделали свою модульную систему, похожую на уже существующую, но не совместимую, ни в коем случае не пишите по ней документации. Два с половиной примера будет достаточно.
Позволю себе ответить на этот завуалированный выпад.

Нет, мы не написали 15-ый конкурирующий стандарт.
Модульностей на рынке много, но у нас есть вполне конкретные требования:
1. Асинхронный require
2. Асинхронный provide
Первое требование означает, что по modules.require мы можем сходить на сервер и подгрузить нужные модули.
Второе требование означает, что модуль сам может быть декомпозирован и (а) догрузить что-то в тот момент, когда его кто-то захотел использовать (например, пробки догрузят актуальные данные — баллы пробок — именно в тот момент, когда их используют), (б) разбить длительную инициализацию на несколько этапов, чтобы не подвешивать браузер.

Нам пришлось выдвинуть такие требования, когда мы начали заниматься декомпозицей package.full. Например, код и картинки для «линейки» на карте не грузятся, пока пользователь не включил её.

Мы очень хотели использовать какую-нибудь из имеющихся модульных систем, но быстро обнаружили, что ни одна (requirejs, commonjs, AMD, LMD, etc) не удовлетворяет этим требованиям.

Мы используем модульную систему, написанную нашим коллегой dfilatov. Она доступна на гитхабе, прошу любить и жаловать:
github.com/ymaps/modules
Я помню пост про эту систему, и не возражаю против ее существования в принципе.

Просто названия совпадают с AMD-шными, но ведут себя по другому, документации кот наплакал, и чтобы выудить даже эту ссылку, пришлось делать «выпад»:)
Документация есть:

Если этого недостаточно, то я прямо даже не знаю, что ещё нужно сделать.
Да чтоб эти ссылки были в руководстве пользователя, а не в недрах комментов на хабре…
Они есть в руководстве пользователя.

Спасибо. Простите за невнимательность.
Судя по коду Яндекс.Карт, модульная система используется намного шире, например, для загрузки css через метод provideCss. Почему тогда открытый проект на гитхабе такой скудный? Я понимаю, что можно поднапрячься и расширить функциональность вашей библиотеки, но не вижу смысла на фоне уже имеющихся библиотек. Если уж идти в открытую, то идти до конца, не ограничиваясь модульностью только в картах. Задумка с двойной асинхронностью очень хорошая, уверен, что не только вы решали эту проблему.
css = просто строка, которую мы добавим в тэг link. Не вижу особого смысла открывать эту функцию, но мы подумаем, спасибо.

> Задумка с двойной асинхронностью очень хорошая, уверен, что не только вы решали эту проблему.

Ну, я не нашел ни одной библиотеки с такой функциональностью год назад. Может, вы нашли?
Ну, я не нашел ни одной библиотеки с такой функциональностью год назад. Может, вы нашли?

Не встречал таких.

Загрузка css лишь малый пример того, что скрыто. Скрыта сама суть независимого модуля, который тянет за собой стили, картинки, шаблоны, мета данные и т. д. Поэтому и говорю, что тот обрубок на гитхабе не интересен для использования в своих проектах. Кроме того, модули еще надо как-то собирать и компоновать с учетом дерева зависимостей для использования на продуктивной системе, и тут опять — тишь да гладь, ничего не предоставлено. Если бы выкатили все до конца, был бы успех, потому что кроме Component я не могу назвать примера библиотеки с инкапсуляцией зависимостей.
> Загрузка css лишь малый пример того, что скрыто.

Нет, это неправда.
provideCss — просто шорткат для записи строки в link. Картинки и шаблоны также поставляются как строки, даже без шорткатов.

Поверх modules на гитхабе мы используем только шорткат для css + оборачиваем в промисы (с использованием другого публичного проекта github.com/dfilatov/vow)
Вместо указания загрузки модулей в src "//api-maps.yandex.ru/2.1/?load=Map,Placemark"
удобно было бы сделать
ymaps.ready(function (Map, Placemark) {
var map = new Map();
//…
})
чтобы только код пользователя во всем моем приложении знал какие модули ему нужны. А-ля dependency injection в ангуляре
Можно использовать ymaps.load(['список модулей']) — эффект будет примерно такой
Вы можете поставить пустой GET-параметр load "...?load=&lang=...". В таком случае будет загружена только модульная система. А дальше при помощи метода modules.require производить загрузку только тех модулей, которые нужны.
api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/modules.require.xml
api.yandex.ru/maps/jsbox/2.1/module_request
Классно было бы прямо на api.yandex.ru/maps/doc/intro/concepts/rules.xml выписать основные правила и ограничения.

То, что яндекс-карты можно использовать только на сайтах и в мобильных приложениях, — неочевидно и зарыто в середине одного из трёх соглашений. А это, в отличие от многих других очевидных пунктов, написанных сложным юридическим языком, важно знать.
Да, вы правы, попросим наших документаторов.
Поясните по пункту «2.3.2. Сервис может использоваться Пользователем только в рамках сайтов или мобильных приложений, доступных для бесплатного открытого использования неограниченным кругом лиц. Сервис не может использоваться для проектов, требующих оплаты, или иным образом ограничивающих доступ к ним третьих лиц. Необходимость зарегистрироваться не считается ограничением доступа в рамках настоящего пункта.»

могу ли я написать софт, для внутреннего использования внутри компании. например, ГИС своих магазинов, объектов, etc… ведь я предоставляю данный сервис только ограниченному кругу лиц., хоть и бесплатно, но только сотрудникам своей компании.
Добрый день. Подобная реализация нарушает Пользовательское соглашение. Страница с картой долдна быть доступна для неограниченного круга третьих лиц.
Я не в коем случае не пытаюсь потроллить, действительно интересно.
Предположим мне нужно решить задачу описанную выше. Я беру, и на публично доступном сайте компании, на публично доступной странице все реализую, но страница находится по длинному и нечеловекопонятному урлу + закрыта от индексирования. Т.е. не зная урл — туда не попадешь.
Пойдет?
Я ни в коем случае не пытаюсь потроллить. Но в Гражданском кодесексе есть понятие о доведении до всеобщего сведения.
а как связаны доступность и доведение? вот я, например, работая по публичной оферте, должен пускать в свой магазин всех желающих. Но я же не должен его нигде рекламировать.

К тому же, страницу всегда можно сделать и индексируемой, но с разным функционалом для разных пользователей.
Карма еще не позволяет лайкнуть ваш комментарий :)
Да, как только не извернутся лишь бы нарушить. чем вас OpenStreetMap не устраивает?
Я вопрос задавал исключительно в познавательных целях. Я в работе сталкиваюсь с похожими проблемами (договор оферты и страшно умные пользователи, вот это все), и мне было любопытно как коллеги из Яндекса отреагируют на «хак» договора, который ну просто первым приходит в голову.
вот вы сейчас спросили, а они потом правила поправят и «дырку» прикроют
Всё исключительно на вашей совести :)
на заметку: требований к тому, чтобы страница была публично доступна нет — только к сайту.
Вот эту дырку мы скорее всего исправим :) Потому что имеется ввиду конечно страница сайта на которой используется API. Спасибо.
UFO just landed and posted this here
Если вы будете использовать только внутри компении, а не продавать софт на сторону тысячам пользователей, то вероятность быть пойманным за руку пренебрежительно мала. Если совесть позволяет, то можно не париться.
Также вопрос по данному пункту пользовательского соглашения.
Получается в бэкэнде использовать яндекс.карты запрещено?
Опишу конкретный кейз:
Допустим я делаю раздел бэкэнда для сайта, например… управление списком точек продаж. Для удобства контентщику — я вставляю яндекс карты, с поиском, чтобы он тыкнул на карту и координаты зафиксировались.
Это бэкэнд, и он по определению имеет ограниченный доступ. Таким образом использование яндекс.карт нарушает данный пункт и формально я должен быть забанен?
Да. Именно так. Вы правы.
Спасибо за сообщение.
Боюсь те кто держит сайты с метками на карте сейчас повесились или пошли переводить админки к гуглу. Как можно модерировать метки без возможности их отображения на карте я плохо представляю.

Простой пример:
— есть сервис для обмена информацией между поставщиками и дистрибьютерами
— у каждого контрагента есть адреса складов/офисов/подразделений со схемами проезда

Вопрос: для модерации отметок на карте поставленных пользователем мне необходимо зайти под его учетной записью и проверять все с клиентской части сайта?

Или существуют иные программы лицензирования, кроме существующей бесплатной, и я это упускаю?
Добрый день. Действительно существует платная лицензия для использования в закрытых системах и для мониторинга транспорта. Такая возможность появилась совсем недавно и пока она не публичная. Для выяснения подробностей можете написать мне ache@yandex-team.ru и я с радостью вам помогу с реализацией.
Вы хотите чтобы ваше пользовательское соглашение читали? ОТлично — прикрепите к нему краткую выдержку с описанием основных моментов нормальнычм человеческим языком.
Как минимум пользователь увидит общую картинку и если уже возникнут вопросы — полезет детально читать конкретный пункт соглашения.
Моей жизни(как и большинства людей) не хватит чтобы детально прочитать все соглашения с которыми приходится иметь дело.
Да и ладно прочитать. Понять юридический язык призванный затыкать все лазейки стоит весьма не малых затрат времени и сил, особенно у людей далеких от юриспуреднции.

Отдельный способ, который позволит значительно улучшить восприятие пользователями лицензионного соглашения — это интерактивный тест.
К примеру вот тест для публикации в AppStore:
www.makayama.com/checklist.html

Хотите чтобы пользователи читали соглашение? Нет проблем, сделайте его удобочитаемым.
Типа «Хотите чтобы УК соблюдался — расклейте по улицам демотиваторы с основными статьями, эти тома никто в здравом уме не осилит.»?
Именно так.
Поэтому основные законы доносят родители в начале жизни ребенка.
Также в школах проходят основы ПДД и других законов.
Мало того, ГИБДД регулярно пишет разъяснения по ПДД, в том числе в картинках:
www.kolesa.ru/article/2012/04/20/gibdd_govorit_pokazyvaet_i_shtrafuet
Странно, что у Вас это удивляет. Это нормальный подход, когда цель донести информацию, а не запутать в юридических терминах.

Ну и да, сколько Вы знаете людей, которые читали УК целиком? Вы сами читали?
С радостью сделаю это в виде статьи для начала. Спасибо за идею.
2.3.7.3. Создавать на основе Сервиса системы мониторинга транспортных средств, отображающих информацию в реальном времени, и любые другие услуги, связанные с управлением и диспетчеризацией транспортных средств.


Вот иногда такое ощущение, что юридический язык используют не для того, что бы добиться однозначности, а для того… ну просто положено так писать и все.
Вот создам я сервис на основе собственного программного кода, в котором буду использовать карты для отображения, пусть и в реальном времени. И что? Как это соотносится с указанным пунктом?
Как я написала выше, мы попросим документаторов подготовить более «человекочитаемые» выдержки из пс.
и я даже боюсь спросить, а не входят ли варианты использования описанные у вас вот тут api.yandex.ru/maps/solutions/?p=shop в противоречие с 2.3.7.3 если вдруг курьер, посмотревший адрес, внезапно сел за руль?
это вы так сказали, или из текста так следует? Потому что у меня курьеры на автомобилях, наряды я им формирую исходя из заказов. То есть фактически именно карта формирует наряд, а значит участвует в диспетчеризации.
Мы исправим текст так, чтобы из него это не следовало, так как такой кейс, если карта отображается не только для ваших курьеров, но и для всех желающих пользователей, не нарушает ПС.
Ваш сервис на основе вашего кода будет использовать API для отображения. Использовать отдельно карты (то есть тайлы) нельзя согласно пункту 2.3.3. Пользователь может использовать Данные и функции, полученные при помощи Сервиса, только в рамках функциональности, предоставляемой Сервисом.
UFO just landed and posted this here
Очень сложно получить полезный прогноз даже на час. После часа прогноз тихо превращается в обычную статистику пробок.
Так что если вам надо ехать куда-то через 8 часов, посмотрите статистику пробок на это время.
Почему на яндекс картах названия стран либо подписаны бледно и мелко либо вообще в большинстве масштабов отсутствуют? А также почему очень невнятно обозначены границы между странами?
Приходиться запускать гугловские там хоть с этим и есть проблемы, но по сравнению с яндекс картами небо и земля.
Этот вопрос скорее надо адресовать к дизайнерам нашей подложки. Напишите в службу поддержки, что вызывает сложности.
Вообще любая библиотека или модуль должны быть понятны интуитивно, а идеальный API не должен требовать навыков программирования.

Абсолютно согласен с этим утверждением. Где-то год назад довелось работать с VK API, и я 3 дня потратил чтобы выполнить кроссдоменный запрос на javascript. Конечно, мои знания на тот момент оставляли желать лучшего, но даже сейчас я понимаю что с моими нынешними знаниями это было бы сложно
2.3.7.4. Создавать на основе Сервиса игровые проекты или приложения

имеется в виду игровые приложения или вообще любые приложения (в том числе не взывающие плату и не ограничивающие доступ к картам)?
Имеются в виду игровые приложения
Вот опять. Почему «имеется в виду» а не написано явно. Что мешает сказать «игровые проекты или игровые приложения». Поймите правильно. У вас имеется в виду, а нам, как пользователям, с этим работать. И когда речь заходит о вариантах применения, чуть более сложных, чем «как проехать», пограничные варианты всплывают постоянно.
Мы передадим юристам это уточнение
Нигде не нашел описания апгрейда с 2.0 на 2.1. В документации есть описание перехода 1.1 -> 2.1, которое мне совсем не подходит.

Такое описание действительно нужно, потому что есть несовместимые изменения, например, пресеты точек на карте теперь называются не 'twirl#darkgreenIcon' a 'islands#darkgreenIcon'
Сейчас описания перехода с 2.0 на 2.1 действительно нет, но люди просят, так что видимо мы его сделаем. Пока что можете сравнить, как сделаны примеры в песочнице для версии 2.0 и для 2.1, там в принципе видны различия.
Ну а если мне надо тупо сделать карту фестиваля для публичного её размещения. Обозначить десяток объектов и подписать их. Мне обязательно надо учить ява-скрипт? Что помешало реализовать подписанные маркеры в конструкторе карт?
Sign up to leave a comment.