質問

静的なGoogleマップを使用していますが、実際にこの問題はどのマッププロジェクトにも適用できます。マップを複数の象限(たとえば50x50ピクセル)に分割し、列をA、B、C ....および1、2、3としてラベル付けしたい...

次に、私はようなことをするつもりです、

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

いくつかの要件、

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

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

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

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

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

役に立ちましたか?

解決

これに2日後、私はついにそれを手に入れました。私は自分の考えを後でつまずく人々と共有するだろうと思った。

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

ズームレベルを計算するために、マーカーのコレクションによって定義されたMaxlat、Maxlng、Minlat、およびMinlng値を決定します。次に、特定のズームレベルでマップの境界を計算しました。最後に、ズームレベルで決定されたマップの新しい境界に、マーカーの収集の最大値、最小LAT、LNG値によって定義された境界が含まれるかどうかを確認するブルートフォース方法を使用しました。ズームレベル21(Google Mapsの最大ズーム)から始めて、すべてのマーカーを含むズームレベルが見つかるまでズームレベルを減らします。

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

PHPには、これをすべて行うのに最適なライブラリがあります ここ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top