Javascript 强制OpenLayers标记层在顶部绘制,并在底部标记层

Javascript 强制OpenLayers标记层在顶部绘制,并在底部标记层,javascript,openlayers,Javascript,Openlayers,正如标题中所指出的,我想知道如何强制OpenLayers标记层在顶部绘制,并在下面标记层。我有一个OSM底图和一个包含标签的可选层 所以我就这样做了,我创建了一个新的js文件,但没有成功。我花了两天时间试着做这件事,但没有任何结果,有人能帮我吗?谢谢你的回复。因此,我使用的代码如下: 对于底图和标记层(也可选择) 在与“我的HTML”页面中的按钮相关的函数(在键入logitude和latitude后添加标记的函数)中: 因此,标记显示出来了,但它位于SelectABLE标记层下,我希望我非常清楚

正如标题中所指出的,我想知道如何强制OpenLayers标记层在顶部绘制,并在下面标记层。我有一个OSM底图和一个包含标签的可选层


所以我就这样做了,我创建了一个新的js文件,但没有成功。我花了两天时间试着做这件事,但没有任何结果,有人能帮我吗?

谢谢你的回复。因此,我使用的代码如下:

对于底图和标记层(也可选择)

在与“我的HTML”页面中的按钮相关的函数(在键入logitude和latitude后添加标记的函数)中:


因此,标记显示出来了,但它位于SelectABLE标记层下,我希望我非常清楚,

从您提供的信息来看,不可能知道发生了什么,需要一个JSFIDLE或完整的代码示例来重现问题。但是一旦注释,通常不推荐使用标记,您应该使用带有图形的普通Feature.Vector,而不是标记,然后将按照图层添加到地图的顺序绘制图层。
             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]);
   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);           
      }