0

「WiFi マップ」を作成したいのですが、それを行うのに問題があります。OPEN/WEP/WPA の 3 つのアイコンと、多くのマーカーと、すべてのマーカーに独自の情報ウィンドウがあり、上部に 1 つだけの情報ウィンドウが必要です。 #1 をクリックしてから #2 をクリックすると、#1 が非表示になります。そして、もし私が XXXX マーカーを持っていれば、ズームアウトでマップ上に問題が発生します.1つの場所に多くのマーカーがある場合、すべてがズームアウトでは表示されませんが、ズームインでは表示されますか?

私はMySQLデータベースのネットワークに関するすべての情報を持っているので、PHPでは公式のGoogleマップのチュートリアルのように簡単に表示できます documentation/v3/overlays.html#ComplexIcons <-たとえば、これに従ってください

  var nodes = [
['WKKOZ',50.192843,18.967801,nodewep,1],
['airlive',50.193056,18.967974,nodeopen,2],
['Zurawia-3',50.198398,18.974723,nodeopen,3],
['siec dol',50.19303,18.96796,nodewep,4],
['KP_8_1',50.193092,18.96801,nodewep,5],
['Natalia',50.19286,18.967812,nodewpa,6],
['Z104',50.192591,18.967588,nodewep,7],
['D2',50.192499,18.96876,nodewep,8],
['Niesia',50.192474,18.968239,nodewpa,9],
['boolean',50.192539,18.967545,nodewpa,10],
['neostrada_0d65',50.192179,18.96758,nodewep,11],
['neostrada_2d38',50.192216,18.96761,nodewep,12],
['Belkin_G_Wireless_9B7BF7',50.192191,18.969261,nodeopen,13],
['Trans_FijPn',50.1939,18.979565,nodeopen,14],
['dlinklis',50.193113,18.968024,nodewpa,15]

私を助けてください!:)

ところで:私のMySQLデータベースのフォーマットはhttp://wklej.to/7Puw/htmlです

4

3 に答える 3

1

ズーム レベルが高いと非表示になる多数のマーカーを地図上に表示する方法について質問していると思います。これは、マーカー クラスタリングと呼ばれます。

クライアント側でクラスタリングを実装し、既存のマッシュアップに非常に簡単に統合できる Javascript ライブラリがいくつかあります。

  • MarkerClusterer - マッシュアップにこれを使用しましたが、デフォルト アイコンの優れたセットと簡単に統合できることがわかりました。
  • ClusterMarker - 私はこれを使用していませんが、かなり機能しているようです。

また、さまざまな代替案について説明しているこのブログ投稿や、サーバー側クラスタリングの詳細について説明しているこのブログ投稿を読むこともできます。

于 2010-03-30T10:53:56.540 に答える
1

私は最近まったく同じ問題を経験しましたが、Sean Vieira の助けを借りて、この問題のほとんどを解決することができました。

この質問に対する答えは次のとおりです。 マップ上に複数のマーカーを独自の情報ウィンドウで表示します。

シナリオのバリエーションは、使用するマーカーへの URL パスを指定する追加のフィールドを配列に追加するだけです。

次に、ループしてマーカーを作成するときに (var marker = new google.maps.Marker以降)、icon変数の配列から値を呼び出します。

アイコンの種類は 3 つしかなく、DB からレコードを作成すると仮定すると、アクセス ポイントの種類をテストしてから、マーカーの種類に関連する URL パスをその場所に書き込みます (私はASP であり、PHP の人間ではないため、書き込みという用語の使用は正しくありません)。

私の解決策は、情報ウィンドウをきれいに処理しません。それらが開かれると、ユーザーが手動で閉じない限り、開いたままになります。新しいものが開かれたときに他のものを閉じるための解決策を見てきましたが、まだそれらを実装する必要はありません。

于 2010-05-25T15:42:59.133 に答える
0

これは古い質問であることは知っていますが、答えがあるので、将来の世代が見ることができるように書きます:)

情報ウィンドウの問題の解決策は、非常に簡単に解決できます。currentWindow というグローバル変数を作成します。ユーザーがマーカーを押すたびに、eventlistener は currentWindow = infoWindow かどうかをチェックします。そうでない場合は、currentWindow を閉じて、新しい情報ウィンドウに設定します。純粋でシンプルです。新しい情報ウィンドウも開くことを忘れないでください。

于 2011-05-01T21:05:14.730 に答える