Google Maps API v3 - マーカー1万個の動作テスト

Google Maps API v3 でマーカーを1万個表示させたらどうなるかの動作確認用

デモ

※低スペック端末で広域にするとフリーズ状態になるかもしれないので注意。

説明

単純にforループを10000回繰り返して、ランダムな緯度・経度にマーカーをセットしているだけ。

分かった事、(1)forの繰り返し回数だけ開始が遅くなる。(2)登録数が多くても地図の表示範囲のマーカーが少なければほとんど動作に影響は無い、しかし表示範囲内のマーカーが多いと移動時などで地図の再表示速度が低下する。

思ったほど動作への影響が小さかったが、影響が0では無いのでマーカーが増えそうな場合は何か対策が必要。

サンプルプログラム

<!DOCTYPE HTML>
<html>
  <head>
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <style>

      #mapdiv { height:300px; width:300px;}

    </style>
  </head>
  <body>
    <div id="mapdiv"></div>

    <script type="text/javascript">
      var gmap;
      function initMap() {
        gmap = new google.maps.Map(document.getElementById('mapdiv'), {
          center: {lat: 35.689, lng: 139.692},
          zoom: 8
        });

        var marker=[];
        for(var i=0; i<=10000; i++){
          var nr=Math.random()*170-85;  /* 緯度 -85~+85 */
          var er=Math.random()*360-180;  /* 経度 -180~+180 */
          marker[i] = new google.maps.Marker({
            position:{lat: nr, lng: er},
            map: gmap
          });
        }

      }
    </script>
    <script async defer
      src="https://maps.googleapis.com/maps/api/js?key=【あなたのAPIキー】&callback=initMap">
    </script>
  </body>
</html>

    

http://www.achiachi.net/