0
正如标题中所示,我想知道如何强制OpenLayers标记图层顶部绘制,并在底部绘制标记图层。我有一个OSM baseMap和一个包含标签的可选图层。强制OpenLayers标记层在顶部绘制,并在底部标记图层
所以我跟着this link,我创建了一个新的js文件,但徒劳无功。我花了2天试图做到没有任何结果,任何人都可以帮助我吗?
正如标题中所示,我想知道如何强制OpenLayers标记图层顶部绘制,并在底部绘制标记图层。我有一个OSM baseMap和一个包含标签的可选图层。强制OpenLayers标记层在顶部绘制,并在底部标记图层
所以我跟着this link,我创建了一个新的js文件,但徒劳无功。我花了2天试图做到没有任何结果,任何人都可以帮助我吗?
感谢您的回复。所以我使用的代码如下:
为底图和标记层(它也是可选)
map = new OpenLayers.Map('map',{controls: [new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.LayerSwitcher({'ascending':false}),
new OpenLayers.Control.ScaleLine(),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.OverviewMap(),
new OpenLayers.Control.KeyboardDefaults()],
numZoomLevels: 30,
projection: mercator,
displayProjection: geographic,
units: "m",
extent: indoor
});
var style = new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
fillColor: "#ff9544",
fillOpacity: 0.9,
strokeColor: "#fc5411",
strokeWidth: 1,
//strokeDashstyle: "dash",
label: "${name}",
// labelAlign: "cc",
fontColor: "#0000",
fontOpacity: 1,
fontFamily: "sans-serif",
})})
var layerLocalisation = new OpenLayers.Layer.Vector("Localisations",{isBaseLayer: false,visibility : true});
var layer = new OpenLayers.Layer.Vector("Bati", {
strategies: [new OpenLayers.Strategy.Fixed()],
styleMap: style,
protocol: new OpenLayers.Protocol.HTTP({
url: "data/gml/bati.xml",
format: new OpenLayers.Format.GML(),
projection: mercator
})
});
var gmap = new OpenLayers.Layer.Google(
"Google Streets", // the default
{numZoomLevels: 30, visibility: false}
);
map.addLayers([gmap,layer,layerLocalisation]);
在我的HTML页面相关按钮的功能(函数输入后添加标记logitude和纬度):
function locate()
{
var coox = document.getElementById("idlong").value;
//alert(coox);
var cooy = document.getElementById("idlat").value;
var coo1 = new OpenLayers.LonLat(coox, cooy).transform(geographic,mercator);
var point1 = new OpenLayers.Geometry.Point(coo1.lon,coo1.lat);
var featurePoint1 = new OpenLayers.Feature.Vector(
point1,
{ description: 'info' },
{ externalGraphic: 'OpenLayers/img/marker-gold.png', graphicHeight: 25, graphicWidth: 21, graphicXOffset: -12, graphicYOffset: -25 }
);
layerLocalisation.addFeatures([featurePoint1]);
// map.addLayers([vectorLayer1]);
map.setCenter(coo1,18);
}
所以标记显示,但是,它是selectabale标记层下,我希望我是那么清晰,
从您所提供的信息,不可能知道发生了什么,需要一个jsFiddle或完整的代码样本来重现问题。一旦发表评论,通常不会使用标记,并且应该使用带有图形而不是标记的普通Feature.Vector,然后按照它们添加到地图的顺序绘制图层。 – 2014-08-29 07:23:21