Клуб API Карт

и снова о декартовой системе

Пост в архиве.

вопрос такой: в списке обновлений для версии 2.0.13 написали, что можно настраивать масштаб для декартовой системы. Как это сделать?

В текущей документации про это еще не сказано. Попробовала аналогии с api 1 написать

var myProjection = new ymaps.projection.Cartesian([
  [-1, -1], 
  [1, 1]],  
  1000 //масштаб
 ), 

никакого видимого эффекта - как масштабный отрезок показывал на нулевом уровне зума 60 см, так и показывает, линейка не работает - отрезок прокладывается, но балун с цифрами не появляется. Хотя, если убираешь указание, что проекция декартова, в режиме обычной географической проекции все ок и с линейкой и с масштабным отрезком).

  var myProjection = new ymaps.projection.Cartesian([[-1, -1],  [1, 1]], scale:1000),  - не открывается вообще

(для экспериментов сохранила вот этот пример Пример. Создание пользовательского типа карты, добавила в заголовок вызова АПИ projection.Cartesian, подключила линейку и масштабный отрезок и меняла в нем параметры 

 

И еще чайницкий вопрос. В ответах часто встречается рекомендация загрузиться в debug mode и посмотреть то-то или то-то. 

Если  я вписываю в вызове api в своей карте 

  <script src="http://api-maps.yandex.ru/2.0.13/?load=package.full,projection.Cartesian&mode=debug&lang=ru-RU"
  type="text/javascript"></script>  (или просто вбиваю этот код в адресную строку браузера)- то получаю в Opera Dragonfly некий текст в котором две трети занимает набор описаний вида ['p0package.geoObjects','qpqJ']

и одну треть - тела функций, которые, насколько я понимаю, отвечают за загрузку пакетов и модулей. Как там увидеть что-то полезное (в частности, касающееся линейки и декартовой системы) - мне неведомо. Подскажите пожалуйста, как надо делать правильно

5 комментариев

 

Подскажите пожалуйста, как надо делать правильно

То что загружается в при подключении АПИ - список зависимостей и предзагрузчик.

Вам надо смотреть в файербаге подключение файла combine.xml

это и есть код АПИ, но он приезжает отдельным запросом

Спасибо, с debug mode разобралась, combine.xml получила. Правда к пониманию, как именно задавать масштаб для декартовой системы, это меня не приблизило :(. Подскажите пожалуйста, а то практически готовый проект встал из-за вот такой вещи. Я уже подогнала было набор тайлов под тот масштаб, что система рисовала мне в версии 2.0.10, но под 6 м на нулевом зуме, я в любом случае многокмилометровую территорию не подгоню :(, а линейка  и масштабный отрезок мне очень нужны. и застревать на старой версии релиза до скончания веков не хочется

Sergey Konstantinov
28 января 2016, 03:58

Вот так:

var projection = new ymaps.projection.Cartesian([[-1, -1], [1, 1]]),

    coordSystem = new ymaps.coordSystem.Cartesian(1000);

 

projection.getCoordSystem = function () { return coordSystem };

 

Да, мы знаем, что это неудобно :) В следующем релизе принято решение добавить параметр scale в конструктор projection.Cartesian, хотя это и неверно архитектурно.

хотела кричать "Ура", но оказалось рано

var projection = new ymaps.projection.Cartesian([[-1, -1], [1, 1]]),

    coordSystem = new ymaps.coordSystem.Cartesian(1000);

alert("ура");

до ура не доходит.

если закомментить   coordSystem =..... то алерт срабатывает.

строка подключения api

просто  2.0 в ней указывать тоже пробовала - не помогает.

И, (ну чайник я :( ), строка

projection.getCoordSystem = function () { return coordSystem }; где должна идти - следом за объявлением и присвоением projection и coordSystem или вызываться в какие-то определенные моменты? Идти в таком виде как написано или как-то модифицироваться? Честно говоря, я как-то не улавливаю смысла этой записи. Ладно бы еще .setCoordSystem. Или мне надо самой написать метод для возвращение координатой системы для проекции?

Вобщем, экспериментировала сегодня. Подключен релиз 2.0 (подтягивается 2.0.14), полный пакет

 coordSystem = ymaps.coordSystem.Cartesian; - пропускает.

использование new или добавление масштаба (1000) - приводит к молчаливому умиранию загрузки без сигнала о каких-либо ошибках. 

Если бы Вы  смогли привести работающий пример карты с использованием декартовой системы и масштаба - это было бы идеально. Например соотвествующим образом модифицировать демку Примеры. Создание пользовательского типа карты.