Мне трудно понять z-индексацию векторных функций.
Когда я искал информацию в Интернете, я нашел следующие ссылки:
http://openlayers.org/dev/examples/ordering.html
http://osgeo -org.1803224.n2.nabble.com / Bug-в-использовании-graphicZIndex-td2648665.html
а также
http://osgeo -org.1803224.n2.nabble.com / graphicZIndex-оф-вектор-функций-td3919627.html
То, что я сделал, настраивало стили, как они показаны в первой ссылке:
this.vectorsLayer = new OpenLayers.Layer.Vector("Vectors", {
styleMap: new OpenLayers.StyleMap({
"default": {
'strokeColor': "#ff9933",
'strokeWidth': 5
},
"select": {
'strokeColor': "#3399ff"
}
})
}
);
this.carsLayer = new OpenLayers.Layer.Vector("Cars", {'rendererOptions': {yOrdering: false, zIndexing: true}});
this.startIconStyle = {'externalGraphic':this.startIconUrl};
this.parkIconStyle = {'externalGraphic':this.parkIconUrl};
this.endIconStyle = {'externalGraphic':this.endIconUrl};
this.defaultStyles = {
//'label':getLabel(),
'graphicZIndex':745,
'graphicXOffset':-13,
'graphicYOffset':-41,
'graphicWidth':26,
'graphicHeight':41,
'strokeLinecap':'round',
'strokeColor':"#000000",
'strokeWidth':2,
'strokeOpacity':1,
'fillOpacity':1}
//style of path that car has used
this.drivedStyle = {
'strokeWidth': 3,
'strokeOpacity': 1,
'strokeColor': "#3399ff",
'strokeDashstyle': "dash"
}
И когда я создаю маркеры, я делаю это так:
var routePoint = this.points[this.routePos].clone();
var newstyleSite = OpenLayers.Util.extend(this.startIconStyle, this.defaultStyles ,OpenLayers.Feature.Vector.style['default']);
this.routePointFeature = new OpenLayers.Feature.Vector(routePoint, {}, newstyleSite);
this.vectorsLayer.addFeatures(this.routePointFeature);
И когда я смотрю на z-индекс этого маркера - для z-index установлено значение auto, а не 745, которое находится в this.defaultStyles.
Это приводит нас к 3-й ссылке ... которую я вообще не могу понять, потому что установка стилей в любом другом месте дает ровно столько, сколько я получаю прямо сейчас.
Ни один не делает
this.routePointFeature.attributes.zIndex = 745;
изменить что-либо вообще. Несмотря на то, что он, очевидно, работает с этой первой ссылкой / примером.
Как должна работать эта z-индексация? И почему это не работает в моем случае? Что я делаю неправильно? Или там что-то прослушивается?
Редактировать: Многие люди просмотрели этот вопрос и проголосовали за ответ. Тем не менее, мне приходилось иметь дело с другими вещами, и я некоторое время не работал с opelayers. Могут ли некоторые люди, которые видели этот ответ, подтвердить, что ответ работает, и я могу принять его?
Alan