2017-08-01 4 views
0

私はJSONファイルからデータを動的に取得し、マップにマーカを作成する関数を使って自分のウェブサイトにGoogleマップを作成しましたデータを受信しました。Google Mapsでは、JSONファイルのマーカーのうちの限られた量(21)しか表示されません

Google Maps: Working With JSON Objectsに関するGoogleの公式チュートリアルの後、小さな問題がある以外はすべて正常に動作します。地図には、少なくとも1600件のエントリがあるうちに最大約21個のマーカーしか表示されません。その結果マーカーは、常に同じですが、彼らはここに関連するコードの抜粋だ(マーカーは情報ウィンドウの正しいタイトルと正しい位置にある)正しいデータを持っている:コードに関する

for (var x in dataForm4) { 
      var data = dataForm4[x]; 
      var latLng = new google.maps.LatLng(data.lat, data.lng); 
      addMarker (map, data.address, latLng); 
    }; 
    }  //This is where the "initiliaze map" function ends 

var infoWindow; 
    function addMarker (map, address, latLng){ 
    var marker = new google.maps.Marker({ 
     position: latLng, 
     map: map, 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
    if (typeof infoWindow != 'undefined') infoWindow.close(); 
    infoWindow = new google.maps.InfoWindow ({ 
    content: address 
    }); 

    infoWindow.open(map, marker); 
    }); 
} 

注:

  • dataForm4は、JSONファイルの文字列化変数です:

    <script> 
        var dataForm4 = <%- JSON.stringify(form2) %>; 
    </script> 
    
  • アドレスは、私は、データがデータベースに入力された機能さを有する

初期化関数内で定義されている情報ウィンドウで

  • マップ変数を使用するため、JSONファイルの内側に位置する各アドレスの「タイトル」でありますJSONファイルに自動的に入力されますが、これはおそらく無関係です。

    悲しいことに、マーカークラスタリングはオプションではありません。私はsetTimeout()とsetInterval()関数を使ってみましたが、私が新しいので、マップで正しく動作するようにはできませんでした。参考までに私はGoogleのMap APIの無料版を使用しています。

  • +2

    Googleがそれらを教えても、「JSONオブジェクト」は厄介なものです... – Teemu

    +0

    私の最初のアイデア:データにエラーがあります。機能に迷惑をかける特殊文字かもしれません。そして、関数はちょうど停止します。おそらく住所。これを試してみるとどうなるか見てみましょう:addMarker(map、 'Hello'、latLng) –

    答えて

    0

    うわー、データベースを比較したところ、誰かが手作業でデータの一部を入力したようです。ファイル内の「lat」変数は「lat」と入力されました。最後にスペースがあるため、Googleは住所の緯度を描くことができませんでした。私たちは以前これを修正しましたが、担当者は手動で入力されたデータの変更を忘れていました。だから間違った変数がエラーの原因となりました。

    関連する問題