2017-02-06 5 views
0

Я разработал приложение для поддержки рисования что-то вроде линий или точек и добавив несколько тегов на карте с помощью OpenLayers 3.Как включить «привязывание» с «Выбрать» взаимодействие в OpenLayers 3

Многих существующих функций OL3 позволяет мне что-то рисовать и модифицировать.

Но, когда я выбираю то, что я нарисовал, я почувствовал необходимость функции привязки, чтобы заставить меня выбирать их более легко.

К сожалению, текущий OL3 поддерживает привязку только для рисования и модифицирования, как показано ниже:

var draw = ol.interaction.Draw({features: some_features}); 
var snap = ol.interaction.Snap({featrues: some_features}); 
map.addInteraction(draw); 
map.addInteraction(snap); 

На самом деле, я обнаружил, что щелкая работы по замене ol.interaction.Draw в ol.interaction .Выберите, потому что я могу выбрать что-то, что я нарисовал, если бы я щелкнул точки отдельно от них. Но указатель мыши не привязался к ним.

Итак, как я могу реализовать выбранное взаимодействие с функцией привязки в OL3?


Добавлены некоторые коды для объяснения деталей.

Смотрите ссылку: https://jsfiddle.net/keltpower0/sej6z2q4/1/

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

Я хочу, чтобы более легко выбрать те строки, с щелкающими функциями, как, если я переместить указатель мыши к линии, указатель «автоматически» привязать к линиям

ответ

1

Выбор с защелкиванием звучит немного странно для меня. Как насчет использования опции hitTolerance для выбора взаимодействия?

+0

Прочтите мои добавленные комментарии. Я думаю, что функция, я полагаю, не так подключен ... –

+0

См. Https://jsfiddle.net/sej6z2q4/3/ для обновленного выбора взаимодействия с 'hitTolerance'. Браузер не позволяет перемещать курсор, поэтому вы не можете «привязать» себя так, как хотите. Но с более крупным «hitTolerance» гораздо проще выбирать небольшие функции. – tonio

+0

Есть ли способ включить привязку с выбранным взаимодействием, как в случае взаимодействия draw + snap? вот так: http://openlayers.org/en/latest/examples/snap.html –