openlayer使用ol.interaction.Draw绘制的圆如何保存在后台?

新手上路,请多包涵

openlayer有个格式工具:ol.format.Format.GeoJSON()可以把features转换为geojosn,但是圆不生效。我想请问一下有别的方式去把绘制的圆保存在后台吗?

阅读 2.4k
1 个回答
新手上路,请多包涵

已经解决了,ol.format.Format.GeoJSON是无法处理圆的,可以处理几何形。因此可以把圆转换成几何形,代码如下。
const features = source.getFeatures()
console.log(features);
const list = features.map((item)=>{

const type = item.getGeometry().getType()
//判断类型为圆
if(type=='Circle'){
  //圆转换成几何
  const polygon = new ol.geom.Polygon.fromCircle(item.getGeometry())
  return new ol.Feature(polygon)
}else{
  return item
}

})
//绘画的图形转换成josn
const json = new ol.format.GeoJSON().writeFeatures(list)
总结:如果要根据圆来查询地图,也可以把圆转换成几何,再用几何查询。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进