http://victorinox.pythonanywhere.com/static/js/manager_functions.jsの 143 行目にエラーがあります。
map.setCenter(google.maps.LatLng(loc.coords.latitude, loc.coords.longitude));
である必要があります
map.setCenter( new google.maps.LatLng(loc.coords.latitude, loc.coords.longitude));
//------------^
その他:ユーザーが HTML5 ジオロケーションの許可を拒否した場合、Firefox はエラー コールバックを起動しません。そのため、マップの中心が他の場所に設定されていないため、中心は必須オプションであるため、マップは読み込まれません。
センターは初期化で設定されると思うかもしれませんが、firefox では、ユーザーがジオロケーションの許可を拒否したときに初期化が呼び出されることはありません。これを見てください:
$(function() {
//creates the map, no center will be set in createMap()
map = createMap();
//in firefox there will not be set a center
//when user denies permission, because error-callback will not execute
geolocalize();
// when the map
center = map.getCenter();
//will never run, because when the map doesn't have a center
//there will no tiles load
google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
initialize();
});
})
提案:
現在、マーカーのちらつきがあります。複数のイベント (zoom_changed、dragond、resize) でマーカーをリロードし、すべてのマーカーを削除して、XHR 応答に基づいて新しいマーカーを作成します。
代わりに、マーカーのキャッシュを作成する必要があります (たとえば、XHR 応答によって指定された ID に基づいてマーカーを識別できる場所)。新しい応答を取得すると、新しいマーカーがキャッシュ内にない場合にのみ作成され、他のマーカーはマップ上に表示されたままになります(ビューポート内に表示されていないマーカーを削除/非表示にしてもメリットはありません)
また、3 つのイベントではなく、bounds_changed のみでマーカーを更新するだけで十分です。