首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenLayers.Layer.Markers的问题-地图上仅显示上次添加的标记

OpenLayers.Layer.Markers的问题-地图上仅显示上次添加的标记
EN

Stack Overflow用户
提问于 2013-06-08 23:00:53
回答 1查看 658关注 0票数 0
代码语言:javascript
运行
复制
function init_map() {
    var map, layer;
    map = new OpenLayers.Map('map');
    layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
        "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
    map.addLayer(layer);
    map.setCenter(new OpenLayers.LonLat(43.5, 40), 10);
    var size = new OpenLayers.Size(21,25);
    var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
    var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset);
    var markers = new OpenLayers.Layer.Markers("Objects");
    map.addControl(new OpenLayers.Control.LayerSwitcher());
    map.addLayer(markers);
    $.ajax({
        type: "GET",
        url: "/rest/displaymap/getMarkers/",
        dataType: "json",
        error: function() {
            console.log('failed to retrieve data');
        },
        success: function(d) {
            console.log(d);
            var i;
            for(i=0; i<d.length; i++) {
                var mrk = new OpenLayers.Marker(new OpenLayers.LonLat(d[i]['objectLon'],d[i]['objectLat']), icon);
                markers.addMarker(mrk);
            }    
        }
    });
}

^ my Init()函数。我有一个简单的层与标记和瓦片层。返回的json是正确的。但只显示一个标记,而不是所有标记。不知道问题出在哪里。请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-08 23:19:40

在这种情况下,您应该使用icon.clone()。在Marker documentation中是这样写的:

请注意,如果您将一个图标传递给标记构造函数,它将获取该图标并使用它。这意味着您不应该在标记之间共享图标--您只需使用它们一次,但对于使用同一图标的任何其他标记,您应该使用clone()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17000776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档