2

最新の Google Map API を使用してダイナミック マップを作成しようとしています。これまでのところ、すべてが順調に進んでいます。もちろん質問があります:

現在のマップを保存する方法を教えてください。動的マーカーを使用してマップを作成するとします。すべてが JavaScript を介して行われるため、ファイル/データベースからこれらの値を取得/設定する必要があります。

google.map.Markers 全体を JSON として出力し、文字列としてデータベースに送信しようと考えていたのですが、100 か所くらいだとうまくいくか不安で心配です効率。

これはそれを行う唯一の方法であり、私は適切に考えていますか? 基本的に、Web サイトのユーザーは地図上にマーカーを配置することが許可されており、もちろん確認が必要です。確認されたら、そのマーカーはマップの最新の「バージョン」にある必要があるため、その情報をデータベース/ファイルから取得する必要があります。

前もって感謝します!

4

1 に答える 1

3

同様のアプリケーションを作成していますが、次のように実装しました。

マーカーで使用している各属性の列を持つMarkerテーブルがあります (緯度、経度、名前、説明、タイプなど)。誰かがマーカーを追加すると、マーカーの属性をデータベースに保存するだけです。 . 次回は、データベースから属性を取得し、JSON にエンコードしてページに添付するだけのマーカーを表示したいと思います。ページ内には、これらの属性を取得してマップ内にマーカーを作成する JS があります。擬似コード:

//this is generated dynamically from DB.
var markers = [
                {lat:115416,lng:26411},
                {lat:115416,lng:26411}
              ];

//this is static, just grabs the dynamic bit and puts it on the map:
for (var i = 0; i < markers.length; i++){
   //creates a marker object
   var marker = new Marker({lat:markers[i].lat, lng:markers[i].lng })
   //displays it on the map
   map.addMarker(marker);
}

これの利点は、データベース内のデータがマップの実装から独立していることです。たとえば、将来 Apple マップに移行することに決め、実装が異なる場合は、別の JS を記述してデータを処理できます。また、それに対してクエリを実行することもできます。たとえば、緯度と言語などを調べて、近くにある場所をクエリできます。

于 2012-08-05T23:49:58.763 に答える