取り急ぎですので、概要のscriptを紹介。このサンプル(iPhone用マーカー表示の高速化)で動作がわかるかと思います。
正確には、配列(XMLファイルやデータベース)からマーカーデータを読み込んだ時に、既存の配列の要素と比較して、同じ要素があった場合、同一のマーカーとみなす策です。
この案を流用すれば、同じマーカーを読み込まなくて済むようになる案が作成できると思います・・・・・。
iPhone(アイフォン)等のマーカーの読み込みが遅いモバイル用マップには必須のテクニックですが、実際にはPC用マップでは不要かもしれませんね。
しかしながら、マーカーを読み込む都度、マーカーがちらつく(フリッカ)するのを防ぐこともできるすぐれものです。また、同じマーカーを読み込むとマーカー(アイコン)やインフォウィンドウの影が濃くなる事象を回避することもできますね。
詳しくは、mobile geo social(英語)を参照下さい。
2011/09/29) 高速化(マーカーの再読み込みをしない)のテクニックを使ったiPhone(アイフォン)用マップを、この記事(目的地アイコン(マーカー)をクリックして、ルート検索結果と距離を表示させる方法の続き)の末尾に追加紹介しました。
var marker = new google.maps.Marker(
{
map: map,
if (name in markers)
{
new_markers[name] = markers[name];
}
else
{
var marker = new google.maps.Marker(
{
map: map,
position: latlng,
icon: icon.icon,
shadow: icon.shadow,
title: name,
animation: google.maps.Animation.DROP
});
google.maps.event.addListener(marker, 'click', function()
{
infoWindow.setContent(html);
infoWindow.open(map,marker);
map.panTo( latlng);
});
}
}
for (var name in markers)
{
if (!(name in new_markers))
{
markers[name].setMap(null);
delete markers[name];
}
}
markers = new_markers;
});
関連記事一覧
スポンサードリンク


3 Comments.