Клуб API Карт

hotspot.Layer

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

Есть возможность создаль слой hotspot.Layer

без привязки его к запросам на сервер?

и каким то образом добавлять в него объекты (hotspot), удалять  и описывать реакцию на события.

Я, конечно нашел в описаниях и hotspot.Layer и hotspot.Shape...

Но никак не могу понять эти конструкторы. И их работу. Что к чему добавлять и где что указывать.

 

Например, чем отличаются Реальная геометрия объекта и Пиксельные координаты фигуры...

23 комментария

я так понял нужно смотреть:

requestObjects в IHotspotObjectSource

 

или parseResponse

 

Для чего оборачивать ответ в функцию?

чтобы из текста ответа - было понятно для какого тайла он пришел?

или еще, какой глубинный смысл?

Алексей Yarrr!
28 января 2016, 03:06

Чтобы вернуть callback, который отработает в нужный момент.

Асинхронная среда не может ждать.

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

hotspot.Layer без серверной части смысла не имеет.

Хотя создать его, конечно, можно. Но зачем?

Собственно говоря - да.  

Зачем? Например - для этого:

http://sifonoff.narod.ru/Galery/rwd_ch/index.html

Но мне, честно сказать не очень нравится обращение два раза на сервер. За тайлом картинки и за данными активных областей.

 

У меня есть данные на сервере, но мне - не очень хочется разбивать обращение к ним на два.

мне, почему -то кажется намного интереснее было бы сгенерить область на лету. 

 

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

Тогда hotspot.Layer вам не поможет, он всегда "показывает" только один тайл - тот, который под курсором.

 

 

это - в стандартной реализации.

Потому и спросил, есть ли возможность  создавать элементы этого слоя самому.

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

Если вам не нужен базовый функционал hotspot.Layer, то зачем его использовать? Проще свой написать.

наверное да.

только самый простой способ разжечь костер с помощью одной спички это - бочка солярки.

Все остальное - более сложные варианты. (шутка)

 

А серьезно, так может все придумано, давно. просто надо правильно воспользоваться.

Можно же и слои картинок на канвас выводить (свой) но нужно ли решать самому вопрос синхронизации движений с картой?

тогда можно посоветовать и свой API написать. Но в наше время один человек это не потянет....

 

Но что-то мы не о том...

Разве hotspot.Shape это не базовый функционал?

Вроде прописан в мануале.

Только немного непонятно (мне) как пользоваться.

Лишь об этом и был вопрос.

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

В первой версии API была возможность.

 

Sergey Konstantinov
28 января 2016, 03:06
Попробуйте подробно описать, что вы хотите сделать.
А я попробую вам помочь.

пока я = просто эксперементирую)))

для возможного улучшения проекта...

http://www.uazpatriot.info/forum_uaz/maps/index.php?map=3

Все данные из таблиц форума (доп поля)

Это - только один слой (не API слой) карты...

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

Но я представляю, как будет эта штука работать, если будет много точек)))

 

У меня сейчас нет конкретной задачи, поэтому, если вам не сложно - ответьте на вопрос, как можно задать отдельно взятую хот область.

Sergey Konstantinov
28 января 2016, 03:06
Если вам нужен аналог HotspotOverlay из 1.1 - то создать новый геообъект и указать ему overlayFactory: 'default#hotspot'
Если для того, чтобы возвращать из HotspotShapeSource, то new hotspot.Shape, все параметры в документации описаны.

Вот, про new hotspot.Shape...

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/hotspot.Shape.xml


Обязательный параметр feature...

Совсем не описан. Может смотрю не туда?

Sergey Konstantinov
28 января 2016, 03:06
feature - это просто Object
Ниже описаны его поля.
Т.е. вот так создавать: new hotspot.Shape({ geometry: ..., pixelGeometry: ..., options: ... })
Собственно, Map, например, так же описан: http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/Map.xml

да. я понял о чем вы говорите, но немного не так МАР описан.

там поля - конкретно указаны обязательны или нет.

Тут что обязательно Реальная геометрия объекта. или Пиксельные координаты фигуры?

Sergey Konstantinov
28 января 2016, 03:06
Все поля обязательные.
В качестве реальной геометрии можно передавать точку привязки (тип реальной и rendered геометрий может различаться).

А какая из них отвечает за интерактивную область на карте?

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

Все. я понял глупость большенства моих вопросов на эту тему.

Ну,для того, что бы правильно спросить - надо что-то знать...)

 

Итак, система подгрузки областей потайлово - понятна  и логична.

При использовании кеширования - нагрузка на сервер - минимальна.

асинхронная среда - и без колбаков в теле ответа жила себе нормально.

нужно это - для обхода правил безопасности. и запрос с колбак (jsonp) имитирует тег

Вопрос такой. возможно ли обращаться не на сервер за данными, а - к объектам?

 

Например тайлы - уже описаны и - уже на локальной машине. было бы неправильно запрвшивать еще и файл описания хотпота. 

Наверное разумнее былобы взять его - из уже имеющегося объекта.

Может и нет, но именно это я и хочу попробовать.

Возможно ли обратиться к функции (вместо сервера) которая в ответ выдаст объект тайла областей?

Алексей Yarrr!
28 января 2016, 03:06

Функция, которая которая "сразу" (асинхронно) запустит ваш колбек, занусув туда уже имеющиеся данные.

Почему нет?

Немного о разном говорим.

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

Но кроссдоменность... вот тут jsonp как раз и нужен.

Он (вроде как маскирует) данные под скрипт.

Кстати, совершенно не обязательно определять эту функцию. Вполне можно доверить это (jqeri) она сама разберется. Тока не забыть ей this передать.

В данном случае назначение этой функции несет другую нагрузку (я так думаю).

А именно - информация для сервера, данные какого слоя и какого тайла нужно выдать в ответе.

Алексей Yarrr!
28 января 2016, 03:06

аякс (ajax) - техника (или группа техник) получения данных/работы с бэкэндом асинхронно.

jquery - фреймворк для клиентского js.

jquery и ajax сам по себе ничего не решает. решает XMLHttpRequest (и его аналог в IE).

как бы асинхронно в браузере работает все. оно работает независимо друг от друга, но в один поток. т.е. два куска кода не могут быть запущены одновременно. пока работает один — все другие ждут.

jsonp есть ни что иное, как скрипт, загружаемый и, естественно, запускаемый, т.к. XMLHttpRequest имеет ограничение на загрузку только со своих доменов, а

да. прошу прощения за свою любовь к флуду.

Да, уже почти все получилось.

есть фотографии в таблице (точнее данные о них). и надо было организовать вывод фоток на карту.

Картиночных слоев - не планировалось.

Как задача - должно быть одно обращение за тайлом и вывод его.

 

фоки я отрисовал на канвасе через renderAt (очень удобная штука).

Надо будет добавить вывод через DOM тайл.

Сейчас api сама решает (от браузера) что выводить.

и написал слежение за положениеи курсора над фотками. (ну и какие то там реакции, которые еще не отточены).

Пробовал - на парорамио. У нас, пока мало координат к фоткам ввели.

Получилось - достаточно без тормозов...