2015-05-19 64 views
0

我尝试使用示例代码从的OpenLayers例如网站创建与用户进行互动圈:的OpenLayers 3 interaction.draw()

var draw = new ol.interaction.Draw({ 
    features: featureOverlay.getFeatures(), 
    type: 'Circle' 
}); 
map.addInteraction(draw); 

我总是得到一个TypeError当我设置,键入:Circle,但当我设置类型为Point,LineStringPolygon它工作得很好。我查看了openlayers 3 API文档,Circle是一个有效的几何类型。有没有人在这里有任何信息,为什么我得到类型错误?

+0

您使用的是哪个版本? – bartvde

回答

1

圈加入到OL3的最新的一个版本(3.4) 现在最新的版本是3.5 我提出加圈的一个例子:

JS

https://cdnjs.cloudflare.com/ajax/libs/ol3/3.5.0/ol.js 

CSS

https://cdnjs.cloudflare.com/ajax/libs/ol3/3.5.0/ol.min.css 

Draw circle

var map = new ol.Map({ 
    target: 'map', 
    layers: [ 
    new ol.layer.Tile({ 
     source: new ol.source.MapQuest({layer: 'osm'}) 
    }) 
    ], 
    view: new ol.View({ 
    center: ol.proj.transform(
     [-110, 45], 'EPSG:4326', 'EPSG:3857'), 
    zoom: 3 
    }) 
}); 
var featureOverlay = new ol.FeatureOverlay({ 
    style: new ol.style.Style({ 
    fill: new ol.style.Fill({ 
     color: 'rgba(255, 255, 255, 0.2)' 
    }), 
    stroke: new ol.style.Stroke({ 
     color: '#ffcc33', 
     width: 2 
    }), 
    image: new ol.style.Circle({ 
     radius: 7, 
     fill: new ol.style.Fill({ 
     color: '#ffcc33' 
     }) 
    }) 
    }) 
}); 

featureOverlay.setMap(map); 


var draw = new ol.interaction.Draw({ 
    features: featureOverlay.getFeatures(), 
    type: 'Circle' 
}); 
map.addInteraction(draw); 
+0

谢谢你是我的Openlayers版本。我有v3.0。 – DBaby

+0

欢迎欣赏编码:-) – talsibony