2

私は約10個のテーブルを持つデータベースを持っており、それらはすべて何らかの方法で相互接続されています(外部キー、関連テーブル)。

そのすべてのデータを使用して、情報ボックスを備えたマーカーとしてGoogleマップのインスタンスにプロットし、マップをフィルタリングできるようにしたいと思います。

Google Maps Articlesから判断すると、データベースからのデータでXMLを使用して、マーカーやその他すべてをプロットする必要があります。

しかし、そのXMLファイルを生成する正しい方法は何でしょうか?Webページとマップのロード時にすべてのテーブルからのデータ全体を含む1つのXMLファイルを生成する巨大なSQLステートメントがありますか、それともこれに対するより正しいアプローチがありますか?

4

3 に答える 3

3

Googleマップのインスタンスにマーカーを配置するためにXMLを使用する必要はありません。できますが、難しいと思われる場合は、そうする必要はありません。私はGoogleMapsV3 APIをよく使用しています。データをJSONにエクスポートし、PHPを使用してドキュメントに埋め込むか、Ajaxを使用してJavaScriptでロードできるようにすることをお勧めします。

データからインタラクティブなマーカーを作成するのは本当に簡単です。データを反復処理し、マップ上の必要なポイントごとにMarkerオブジェクトを作成し、情報ウィンドウに表示するHTMLを指定して、Markerのクリックイベントにその情報ウィンドウを表示するだけです。

小さじ1杯の精度で説明する代わりに、Google Maps API v3の初心者向けチュートリアルを紹介します。このチュートリアルには、マーカーを作成して地図に表示する方法の例が含まれています。

おもしろいことに、各マーカーに表示されるアイコンを制御したり(任意の画像へのURLを指定したり)、それらをバウンスさせることができます。要約すると、JavaScriptを使用すると、XMLを使用する場合よりもはるかに多くの制御が可能になります。

パフォーマンスに関しては、cillosisのアドバイスに耳を傾け、MySQLデータを最終的に選択する形式でキャッシュします。JSONを使用する場合は、その結果もキャッシュできます。「mysql-export-1335797013.json」のようなファイルに出力を保存するだけです。その数値は、データを更新する必要があるときに推定できるUnixタイムスタンプです。

于 2012-04-30T20:38:09.233 に答える
2

初めてSQLを使用して特定のクエリのXMLを生成し、後で使用するためにそのXML出力をキャッシュします。初めては遅いかもしれませんが、その後はすでに生成されており、非常に高速になります。

于 2012-04-30T20:33:23.760 に答える
1

PHPとAJAXで比較的簡単にXMLを使用したい場合は、それを実行してください。そのため、例ではそれを使用しています。しかし、あなたは間違いなくXMLに制限されていません。JSONは、PHPでも簡単で、XMLよりもダウンロードが少なく、Javascriptで直接使用できる形式で配信されるため、一般的に使用されます。または、ページのJavascriptで操作できる他のものを使用することもできます。

1つの巨大なクエリとデータのダウンロードを使用するかどうかに関しても、それを行う必要はありません。あなたができること:それは遅いかもしれません—クエリを実行するだけでなく、データを転送することもできますが、クエリ結果をキャッシュすることは役に立ちません。ユーザーは、データが到着するのを待ってから、Javascriptによって操作されて地図に表示される必要があります。

基本的なデータを表示するためにかなり単純なクエリを実行することを検討してください。そうすれば、ユーザーは、おそらくデータが必要になったときに、さらに多くのクエリを実行して、ユーザーが適度にすばやく何かを見ることができます。ユーザーがクリックして表示しない場合は、大量のインフォウィンドウデータをダウンロードしても意味がありません。その場合、マーカーデータと基本的なインフォウィンドウデータを配信し、ユーザーが実際に要求した場合にのみ詳細データを取得します(つまり、2段階のインフォウィンドウを使用します)。

于 2012-05-01T06:38:58.990 に答える