OpenLayers:如何给一个标记添加CSS类?

3

你好!
我想在我的OpenLayers地图上为每个标记添加一个唯一的(css-)类,但我不知道该怎么做!我尝试了几乎所有方法,并在 OpenStreetMap论坛上发布了这个问题(因为那里的人对OpenLayers非常熟悉)。
这是我编写的添加标记的函数:

function ownMarker(lon,lat,icon,markerid) {
    var size = new OpenLayers.Size(38,58);
    var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
    var element = new OpenLayers.Element.addClass('div', 'test');
    var icon = new OpenLayers.Icon('images/marker/'+ icon +'.png', size, offset);
    var marker = new OpenLayers.Marker((new OpenLayers.LonLat(lon, lat).transform(proj4326, projmerc)),icon)
    marker.id = markerid;
    marker.events.register("mousedown", marker, function() {
        if(this.id != 'home') {
            currentID = this.id;
            $('.activeResult').removeClass('activeResult');
            $('#results a[href$=' + this.id + ']').addClass("activeResult");
            showContent($(".nav a:first-child").attr("href"));
            $(".nav a:first-child").addClass("activeContent")
            if(contentOpen == false){
                $("#container").show();
                $(".frame").animate({left: 0});
                contentOpen = true;
            }
            tempLatitude = $('#results a[href$=' + this.id + ']').attr("lat");
            tempLongitude = $('#results a[href$=' + this.id + ']').attr("lon");
            targetLatitude = $('#results a[href$=' + this.id + ']').attr("lat");
            targetLongitude = $('#results a[href$=' + this.id + ']').attr("lon");
            ownPanTo(tempLongitude, tempLatitude);
            console.log(this.id);
        }
    });
    markers.addMarker(marker);
}
这是一个JavaScript函数,用于在地图上添加标记。它需要经度、纬度、图标和标记ID作为参数,并创建一个OpenLayers Marker对象来显示标记。当用户点击标记时,它将更新当前ID并显示相关内容。如果内容打开,则将其关闭。最后,它将使用经纬度将地图平移到标记位置。

正如您在第5行中所看到的,我已经尝试为标记添加类 - 但没有成功!

请帮帮我!:)

谢谢!


这是哪个版本的OpenLayers? - Corné
1
我认为它是v2.12... - PonyHugger
1个回答

0
也许答案太显而易见了:OpenLayers图标首先不是HTML元素,但是您可以访问将在绘制地图时成为图标一部分的HTML元素:http://dev.openlayers.org/docs/files/OpenLayers/Icon-js.html#OpenLayers.Icon.imageDiv(当我使用www.openlayers.org上的第一个API文档链接时,它并非出现的内容,很奇怪)。因此,可以这样解决这个问题:
icon.imageDiv.className += " my_icon_class";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接