1

私はGoogle Maps APIを使用して、ユーザーが入力した場所の近くに店舗の地図を作成しています。すべてが機能していますが、Internet Explorerでエラーが発生しました。取り除きたいです。エラーは、 "json.markers [i] .latitudeがnullまたはオブジェクトではない"ということです。ここでは、コードです:GoogleマップとInternet Explorer Javascript/JSON問題

​​

そして、ここで要求されるようにJSONオブジェクトは、(私は機密保持の目的のために値の一部を変更した):私は他にこのエラーが届かない

{"gdrzoom":[ 
{"setting":"7"}], 
"gdrcenter":[ 
{"latitude":"35.5", 
"longitude":"-79.6"}], 
"markers":[ 
{"latitude":"35.0", 
"longitude":"-78.9", 
"name":"Store", 
"description":"DESCVALUE"}, 
{"latitude":"36.0", 
"longitude":"-79.8", 
"name":"Store", 
"description":"DESCVALUE"}, 
{"latitude":"35.5", 
"longitude":"-80.8", 
"name":"Store", 
"description":"DESCVALUE"}]} 

私はjsonオブジェクトに正しい情報が含まれていることを知っています。また、スクリプトをページの最後に移動して、それが単純ではないことを確認しました(そうではありません)。

アイデア?これに

mrkrs.each(json.markers, function(i) { 
    point = new GLatLng(json.markers[i].latitude,json.markers[i].longitude); 
    marker = createMarker(point,json.markers[i].description); 
    map.addOverlay(marker); 
});} 

+0

はhttp://jsonlint.com/を使用してJSONを検証しますIEは余分なコンマを嫌う! – ManseUK

+0

JSONオブジェクトに追加の配列エントリはありません。アイデアをありがとう。 –

+0

jsonを含めることはできますか?あなたの質問に投稿するか、http://jsfiddle.net – ManseUK

答えて

1

は、これを変更してみてください

for (var i = 0; i < json.markers.length; i++) { 
    point = new GLatLng(json.markers[i].latitude,json.markers[i].longitude); 
    marker = createMarker(point,json.markers[i].description); 
    map.addOverlay(marker); 
} 

それがエラーを削除する場合は、説明のために読んでください。

それを配合二つの問題だ:

  • Googleマップ "Array.prototype.map()" 機能
  • jQueryの.each()は時々、ループの "このfor..in" メソッドを使用します(追加

    "for..in"メソッドを使用しても、ほとんどのブラウザではループするときに "Array.prototype.map()"関数は無視されますが、オブジェクトをループするかどうかによって異なります。 Internet Explorerはループを試みます。これはあなたのループの最後の反復が実際には "latitude"プロパティを持たない "map"関数上にあるため、IEはあなたのエラーをスローします: "json.markers [i] .latitudeはnullかどうかオブジェクト "です。 「FOR..IN」ここルーピング上

    より詳細な情報: - 私はそれの最後に余分なコンマがあると疑われる.... Why is using "for...in" with array iteration a bad idea?

  • +0

    これはそれほどではありませんでしたが、私を正しい解決策に導いてくれました。明らかに、コンソールの出力でも表示されなかった余分な配列オブジェクトがありました。私は.length - 1にループを走らせ、うまくいった。ありがとう! –

    関連する問題