После нарисовать круг в моей карте, я экспортировал его:Нарисуйте круг снова после того, как вектор экспорта
getAsJson : function() {
var geojson = new ol.format.GeoJSON();
var features = this.vectorSource.getFeatures();
var jsonData = geojson.writeFeatures(features,{
featureProjection: ol.proj.get('EPSG:3857'),
dataProjection: ol.proj.get('EPSG:4326')
});
return jsonData;
}
и результат был:
{"type":"FeatureCollection","features":[
{"type":"Feature","geometry":{
"type":"GeometryCollection","geometries":[]
},"properties":{
"circleCenter":[-4805776.093508227,-2600749.7153150304],"circleRadius":6658.801529937424
}
}]}
Это, как я беру центр окружности и радиус:
var draw = new ol.interaction.Draw({
source: vectorSource,
type: value, // Can be Circle,Point,Line,Polygon
// No Geometry Function when type is 'Circle' (omited code to simplify)
geometryFunction: geometryFunction,
maxPoints: maxPoints
});
draw.on('drawend', function(evt){
var geometry = evt.feature.getGeometry();
// Check the type before try to get this! (omited code to simplify)
var center = geometry.getCenter();
var radius = geometry.getRadius();
evt.feature.set('circleCenter', center);
evt.feature.set('circleRadius', radius);
});
map.addInteraction(draw);
Теперь я пытаюсь использовать этот JSON, чтобы сделать тот же круг снова, но не имеет геометрии, и это не работать (работа для всех других геометрий, таких как точки, polygong и линии, поэтому проблема это не код):
var features = new ol.format.GeoJSON().readFeatures(jsonData, {
featureProjection: 'EPSG:3857'
});
var vectorSource = new ol.source.Vector({
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource,
style : customStyleFunction
});
map.addLayer(vectorLayer);
Просто примечание: теперь я вижу проекцию центра и радиуса не был изменен. Должен также работать над этим ...
Работает. Благодарю. Просто примечание: я потерял все свойства, потому что новая функция, поэтому мне нужно передать свойства с 'featuresJson [i]' на 'feature', но я должен сохранить новую геометрию:' var oldProperties = featuresJson [i]. GetProperties(); var newProperties = feature.getProperties(); oldProperties.geometry = newProperties.geometry; feature.setProperties (oldProperties, true); –