0

私は静的なグーグルマップを使用していますが、実際にはこの問題はどのマッププロジェクトにも当てはまる可能性があります。マップを複数の象限(たとえば50x50ピクセル)に分割し、列にA、B、C ....、行に1、2、3...というラベルを付けたいと思います。

次に、次のようなことをする予定です。

1)最も北、東、南、西にあるマーカーを見つけます2)その情報を使用して、各行と列のボックスの境界ボックスを定義します3)各マーカーをその行と列で分類します(マーカー1の例= [ A、2])

いくつかの要件、

  • Googleにズームレベルを適切に設定させ、ズームレベルに依存するアルゴリズムを使用したくないので、ズームレベルがわかりません。ただし、地図に表示されているすべてのマーカーの場所はわかります。

これは、マーカーを分類したいマップの例、 静的マップの例のリンクです。

良いスタートのように見えるこれらを見つけました、 リソース1リソース2

しかし、私はまだ始めるのにいくらかの助けを必要としていると思います。誰かがいくつかの擬似コードを書き出すのを手伝ったり、さらにいくつかのリソースを投稿したりできますか?私は今、ちょっと轍を踏んでいます。

ありがとう!どんな助けにも感謝します!

4

1 に答える 1

0

これで2日が経ち、ようやく手に入れました。後でこれに出くわした人々と私の考えを共有すると思いました.

このサイトの PHP コードに従い、緯度と経度のペアをピクセル座標に変換するために、個々のピクセル行を x 値で分類し、列をピクセル y 値で分類することができました。

ズーム レベルを計算するために、マーカーのコレクションによって定義された maxLat、maxLng、minLat、および minLng の値を決定します。次に、特定のズーム レベルでマップの境界を計算しました。最後に、ズーム レベルによって決定されるマップの新しい境界に、マーカーのコレクションの最大、最小緯度、経度の値によって定義された境界が含まれるかどうかをチェックする力ずくの方法を使用しました。ズーム レベル 21 (Google マップの最大ズーム) から始めて、すべてのマーカーを含むズーム レベルが見つかるまでズーム レベルを下げます。

このメソッドで計算されるズーム レベルは、静的マップにズーム レベルを指定しない場合に自動的に選択される Google のプリセット ズーム レベルと一致するようです。

PHP には、これらすべてを行う優れたライブラリがここにあります。

于 2010-12-29T02:21:11.847 に答える