2

Openlayers で地図上に円を描き、円の半径をマイル単位で計算して表示したいと考えています。どうすればいいですか?

4

3 に答える 3

1

これが私がそれをやった方法です。

var measure = event.measure;
var areaSquareMiles =  measure * 0.386102;
var radius = 0.565352 * Math.sqrt(areaSquareMiles);
于 2013-02-27T18:25:27.327 に答える
1

次のコードでこの問題を解決できます。

//vectorLayer.features[0] --> Your circle feature
var central = vectorLayer.features[0].geometry.getCentroid();
var point1 = new OpenLayers.Geometry.Point(central.x, central.y);

var circlePoint = vectorLayer.features[0].geometry.components[0].components[1];
var point2 = new OpenLayers.Geometry.Point(circlePoint.x, circlePoint.y);

var length = point1.distanceTo(point2);

console.log(length * 0.0006213712)

お役に立てば幸いです...

于 2013-02-11T15:29:20.233 に答える
0

あなたの質問がよくわかりませんが、直径がある場合はそれほど難しくありません。 radius=diameter/2 円の点しかなく、半径を知りたい場合は、点間の最大距離を計算することで直径を推定できます。必要な精度 (補間) に応じてさまざまなソリューションがあります。お役に立てれば。

于 2013-02-11T12:12:43.397 に答える