Взаимодействие Openlayers 3.draw()

Я пытаюсь создать пользовательский интерактивный круг, используя пример кода с примера веб-сайта openlayers:

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

Я всегда получаю TypeError, когда устанавливаю тип: Circle, но когда я устанавливаю тип Point, LineString или Polygon, все работает нормально. Я просмотрел документацию API openlayers 3, и Circle является допустимым геометрическим типом. У кого-нибудь здесь есть информация о том, почему я получаю ошибку типа?


person DBaby    schedule 19.05.2015    source источник
comment
Какую версию ты используешь?   -  person bartvde    schedule 20.05.2015


Ответы (1)


Circle был добавлен в одну из последних версий ol3 (3.4) Сейчас последняя версия 3.5 Я сделал пример добавления Circle:

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

Нарисовать круг

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);
person talsibony    schedule 20.05.2015
comment
Спасибо, это была моя версия Openlayers. У меня была ол v3.0. - person DBaby; 26.05.2015