Я работаю с Google Maps API-v3. Я добавляю полигон на свою карту и кучу полилиний. Эти линии обычно расположены в области полигонов. Это выглядит так: Google Maps Polygone «clickable: false» не показывает никакого эффекта
я отключил клик-событие на полигоне:
let mapPolygone = {
id: currentPolygone.Id, //currentPolygone is just a wrapper
path: path,
stroke: {
color: currentPolygone.LineColor,
weight: currentPolygone.LineWeight
},
fill: {
color: currentPolygone.FillColor,
opacity: currentPolygone.Opacity
},
editable: false,
draggable: false,
geodesic: false,
// I disabled the click
clickable: false,
visible: true,
}
Я зарегистрировал щелчок-обработчик на polyine:
let mapPolyline = {
// currentPolyline is also a wrapper
id: currentPolyline.Id,
path: path,
stroke: {
color: currentPolyline.LineColor,
weight: currentPolyline.LineWeight
},
strokeOpacity: 1,
editable: false,
draggable: false,
geodesic: false,
clickable: true,
visible: true,
icons: this.getIcons(currentPolyline), // generates a standard GMap-Arrow
events: {
//Here goes the click event. Doing stuff on
click: (polyline: any) => {
this.$scope.polyLineClicked(currentPolyline.Id);
}
}
}
Что я ожидаю от Google , а с другого thread - это то, что полигон игнорирует щелчок и что элемент находится под полилинией, получает щелчок. Однако это не так. Я все еще получаю щелчок курсор при нахождении над полигоном
и он все еще получает щелчок.
Порядок нанесения полилиний/полигонов происходит в случайном порядке. Иногда линия кликабельна (при окраске над полигоном), но обычно это не так.
Есть ли способ получить эту работу, не придумывая пользовательские оверлеи и тому подобное? Я что-то упустил?
Спасибо вам заранее!
Если вы не нарисовали никаких полилиний, полигон не может быть нажат? Можем ли мы увидеть полный пример, демонстрирующий, как вы создаете многоугольник и полилинии? – duncan
Невозможно изменить порядок наложений (я думаю, что это было бы самым эффективным и легким решением, о котором я могу думать)? Рассматривая другой поток, вы можете хранить все данные в 2 массивах (один содержит полилинии, один из которых содержит полигоны); то в последний момент вы устанавливаете полигоны на карте, затем полилинии –
@EmmanuelDelay: Я думаю, это невозможно, так как на картах Google используется система фиксированного слоя, в которой полилинии и полигоны втягиваются в один и тот же слой (см. http: : //stackoverflow.com/a/15674284/2221750) – hoffmax91