Coffeescript 未在OpenLayers中显示的圆圈

Coffeescript 未在OpenLayers中显示的圆圈,coffeescript,openlayers,Coffeescript,Openlayers,对OpenLayers来说非常陌生,并且尝试在地图上围绕单击的原点绘制一个圆。我有这个密码- circleLayer = new OpenLayers.Layer.Vector "Circle Search" circle = new OpenLayers.Geometry.Polygon.createRegularPolygon( new OpenLayers.Geometry.Point(lat,lon), 100, 30 ) console.log(circle) feat

对OpenLayers来说非常陌生,并且尝试在地图上围绕单击的原点绘制一个圆。我有这个密码-

circleLayer = new OpenLayers.Layer.Vector "Circle Search"
circle = new OpenLayers.Geometry.Polygon.createRegularPolygon(
  new OpenLayers.Geometry.Point(lat,lon),
  100,
  30
  )
console.log(circle)
feature = new OpenLayers.Feature.Vector(circle)
circleLayer.addFeatures(feature)
mapApp.map.openLayersMap.addLayer circleLayer

但是圆圈没有出现,我也不知道为什么。有人能告诉我吗?

你是否正在将你的纬度转换为地图所使用的投影

测试: 试着用0,0表示lon,lat和一个更大的圆圈,看看它是否出现在非洲中东部海岸

如果这是问题所在,那么以下是如何进行转换:

在顶部添加:

 projLatLon = new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
 projMap = new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
然后,示例代码的第三行变成:

 new OpenLayers.Geometry.Point(lat,lon).transform(projLatLon,projMap),

您是否将纬度转换为地图使用的投影

测试: 试着用0,0表示lon,lat和一个更大的圆圈,看看它是否出现在非洲中东部海岸

如果这是问题所在,那么以下是如何进行转换:

在顶部添加:

 projLatLon = new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
 projMap = new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
然后,示例代码的第三行变成:

 new OpenLayers.Geometry.Point(lat,lon).transform(projLatLon,projMap),