2011-10-17 7 views
1

私は数千(緯度、経度)の点が格納されたデータベースを持っています。これらのポイントは、タイルサーバーを使用してマップにプロットされます。このようなタイルサーバは、最初に、各タイルについて、タイルの内側にあるポイントを計算し、その後、すべてのポイントを(座標変換後に)描画する。次のように私にはjavascriptが見えます:Googleマップとjavascriptカスタムマップタイルを動的に更新(再表示)する方法はありますか?

var overlayMaps = [{ 
    getTileUrl: function(coord, zoom) { 
    return "tileserver.php?x="+coord.x+"&y="+coord.y+"&z="+zoom+"&g=1"; 
    }, 

    tileSize: new google.maps.Size(256, 256), 
    isPng: true, 
    opacity: 1.0 
}]; 

var overlayMap = new google.maps.ImageMapType(overlayMaps[0]); 
map.overlayMapTypes.setAt(0,overlayMap); 

を今、私は動的に5秒ごとにデータベースに新しいレコードを追加していて、私はそれぞれのタイルが5秒ごとに更新(再計算し、再表示)することにしたいです。

5秒ごとにビューポートのタイルを再計算するためにタイルサーバーを起動するにはどうすればよいですか?

を追加しました:...事前に

おかげで...

+0

ありがとう!私は乱数の代わりに現在の時刻を使用しようとしました(あなたが述べたように)、うまくいきました! –

答えて

1

タイルがあるのタイルは問題なく5秒ごとに更新されますが、主な問題は今、地図上にそれらを再表示していますこれらのどれが変更されるかも知れません。また、単一のタイルをリフレッシュすることはできませんが、ビューポート全体がリフレッシュできません。ビューポートが変更されるたびにキャッシュされないイメージを並べ替えるたびに、タイルを動的に提供します。彼らは常に変更します。これのために、このようなタイルのURLコードに時間フラグや乱数を入れることができます。

"tileserver.php?x="+coord.x+"&y="+coord.y+"&z="+zoom+"&g=1&r=" + Math.random(); 

よろしく

+0

このようなパラメータを持つことは良い選択肢ですが、再読み込みするとタイルはしばらく点滅します。これを避けたい方は、次のリンクをご覧ください:https://groups.google.com/forum/#!topic/google-maps-js-api-v3/JaPykM3w-l4/discussion –

+0

タイルが見えなくなるまで不透明度を変更するその後、タイルを解放し、それを再読み込みすると良いアイデアに見えます。私もこの方法を試してみましょう。ダビデを共有してくれてありがとう – Myra

関連する問題