私はGoogle Maps APIを使用しており、マーカーを追加しました。今、私は各マーカーの周りに半径10マイルを追加したいと思っています。つまり、ズーム中に適切に動作する円を追加したいのです。どのようにすればいいのかわかりませんし、一般的ではないようです。
いい感じの例を見つけましたそして、Google Latitudeも見てみてください。ここでは、私が望むように、半径のあるマーカーを使っています。
Update: Google Latitudeでは、拡大縮小された画像]2を使用していますが、これはどのように機能するのでしょうか?
球面幾何学では、形状は点、線、その線の間の角度で定義されます。このような初歩的な値を扱うことしかできません。
そのため、(球に投影された形である)円は、点を使って近似しなければならないものなのです。点が多ければ多いほど、円のように見えます。
とはいえ、グーグルマップは、「地球を平面に投影している」1ことに気付いてください(地球を「"unroll"」して、「"square"」に見えるまで引き伸ばしたり、平らにしたりしていると考えてください)。また、平面の座標系があれば、その上に2次元の物体を好きなだけ描くことができます。
言い換えれば、Googleマップ上に拡大縮小されたベクトル円を描くことができるのです。しかし、Googleマップはそれをすぐには提供してくれません(彼らは現実的に可能な限りGISの値に近づけたいと考えています)。彼らはGPolygonだけを与え、それを使って円を近似してほしいと考えています。しかし、IEではvml、他のブラウザではsvgを使ってこの人がやってくれました("SCALED CIRCLES"のセクションを参照)。
さて、縮小された円の画像を使ったGoogle Latitudeについての質問に戻りますが(これが一番役に立つでしょう)、円の半径が決して変わらないことが分かっている場合(例えば、ある地点を中心に常に10マイルである)、最も簡単な解決策はGGroundOverlayを使うことです。ここで必要な作業は、半径10マイルを表すGLatLngBoundsを作成することだけです。これができれば、google maps apiは、ユーザーがズームインやズームアウトしたときに、画像のスケーリングを処理します。
私は過去にこの問題を抱えていたので、この[議論]をブックマークしました1。
要約すると、以下のようになります。
1.このcircle filter'のソースコードを見て、どうやって自分のプロジェクトに組み込むかを考える。 2.円を模したGPolygonを十分な点で描く。 3.3. http://www.nearby.org.uk/google/circle.kml.php?radius=30miles&lat=40.173&long=105.1024を修正してKMLファイルを生成し、それをインポートする。 Googleマップでは、検索ボックスにURIを貼り付けるだけで、地図上に表示されます。 APIを使ってどのようにするのかはわかりませんが。