0

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

しかし、円が表示されません。その理由はわかりません。誰でも教えてもらえますか?

4

1 に答える 1

3

緯度経度をマップで使用される投影法に変換していますか?

テスト: 経度、緯度に 0,0 を使用し、より大きな円を使用してみて、東中央アフリカの沖合に表示されるかどうかを確認します。

それが問題である場合、変換を行う方法は次のとおりです。

上部に追加:

 projLatLon = new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
 projMap = new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection

サンプルコードの 3 行目は次のようになります。

 new OpenLayers.Geometry.Point(lat,lon).transform(projLatLon,projMap),
于 2012-10-30T08:52:44.470 に答える