3

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

    函数 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)
        标记.id = 标记ID;
        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")
                如果(内容打开 == 假){
                    $("#container").show();
                    $(".frame").animate({left: 0});
                    内容打开=真;
                }
                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);
                控制台.log(this.id);
            }
        });
        标记.addMarker(标记);
    }

正如您在第 5 行中看到的那样,我已经尝试向标记添加一个类 - 没有成功!

请帮我!:)

干杯!

4

1 回答 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";
于 2013-11-21T16:09:24.647 回答