51

これは最近の Google Maps API v2 の制限だと思います。彼らは最近、地面に円を描く機能を追加しましたが、円全体を表示するようにカメラを配置したい場合、そうする方法はありません.

CameraUpdateFactory#newLatLngBounds(bounds, padding) を呼び出すことができます。ここで、「境界」は LatLngBounds であり、「パディング」はピクセル単位の距離です。問題は、LatLng と半径を LatLngBounds に作成する方法がないことです。

LatLngBounds のコンストラクターは 2 つの LatLng インスタンスのみを受け取り、これらが北西と南東の角である四角形を生成します。

4

5 に答える 5

12

これは完全に実行可能です。

LatLng は円の中心ですか? あなたがしたいことは、あなたの円をLatLngBounds(Circle inside a Square problem) の中に入れることです。そうすれば、全体が地図上に表示されます。

これを紙に描くと、計算に必要なものがすべて揃っていることがわかりますLatLngBounds

直角三角形の辺の長さを求める方法を覚えていますか?

a² + b² = c²

円の中心から北西 (左上) の角まで線を引き、正方形の西側の壁 (中心から左への直線) まで別の直線を引くと、三角形ができます。c三角形の他の辺の長さ (円の半径) がわかっているので、上記の方程式を使用して解くことができます。

だから今あなたの方程式は

r² + r² = c²

これは

2r² = c²

これはさらに

c = 平方根(2) * r

これで距離ができました。地球は平らではないので、これはもちろん単純化しすぎです。距離が大きくない場合は、上記と同じ方程式を使用できますが、球状の地球を平面に投影するように変更されています。

http://en.wikipedia.org/wiki/Geographical_distance#Flat-surface_formulae

これも、上で行ったのと同じように、ピタゴラスの定理を使用していることに注意してください。

次に、与えられた方位と上記で見つけた距離から、中心点からエンドポイント (NW と SE の角) を計算する必要があります。

ここに画像の説明を入力

この投稿が役立つ場合があります:距離、方位、開始点を指定して終点を計算する

上記のリンクの投稿の式を使用するときは、度をラジアンに変換することを忘れないでください! ( 度を掛けるpi/180)

于 2013-03-10T07:54:37.073 に答える