0

地図上にマーカーを表示するためにGoogleマップを使用しています。 Google Mapのユーティリティライブラリバージョン1.1(http://gmaps-utility-library-dev.googlecode.com/svn/tags/markermanager/1.1/src/markermanager.js)からMarkermanagerを使用します。GoogleマップMarkermanager:IEにマーカーが表示されない

スクリプトはFirefox、Chrome、Operaで完璧に機能しますが、IE7とIE8では地図がマーカなしで表示されます。 IEは私にエラーを与える:0 URI:mydomain.com/googlemaps.js

Googlemaps.jsは、次のようになります。

'posn.0' が空、またはまったくオブジェクト googlemaps.js コードです

var officeLayer = [ 
{ 
"zoom": [0, 1], 
"places": [ 
    { 
    "name": "USA", 
    "posn": [40.72, -73.9826] 
    }, 
    { 
    "name": "Europe", 
    "posn": [52.370, 4.8966] 
    } 
] 
}, 
{ 
"zoom": [2, 17], 
"places": [ 
    { 
    "name": "Amsterdam", 
    "posn": [52.370, 4.8966] 
    }, 
    { 
    "name": "Barcelona", 
    "posn": [41.388, 2.1833] 
    }, 
    { 
    "name": "Berlin", 
    "posn": [52.5166, 13.4000] 
    }, 
    { 
    "name": "New York City", 
    "posn": [40.72, -73.9826] 
    }, 
    { 
    "name": "Paris", 
    "posn": [48.860, 2.3333] 
    } 
] 
}, 
{ 
"zoom": [9, 17], 
"places": [ 
{ 
    "name": "&klevering Centraal", 
    "posn": [52.379446, 4.893913] 
}, 
{ 
    "name": "290 Square Meters", 
    "posn": [52.368906, 4.902288] 
} 
] 
} 
]; 

var map; 
var mgr; 
var icons = {}; 
var allmarkers = []; 

function getIcon(images) { 
var icon = null; 
if (images) { 
if (icons[images[0]]) { 
icon = icons[images[0]]; 
} else { 
icon = new GIcon(); 
icon.image = "img/" 
    + images[0] + ".png"; 
var size = iconData[images[0]]; 
icon.iconSize = new GSize(size.width, size.height); 
icon.iconAnchor = new GPoint(size.width >> 1, size.height >> 1); 
icon.shadow = "img/" 
    + images[1] + ".png"; 
size = iconData[images[1]]; 
icon.shadowSize = new GSize(size.width, size.height); 
icons[images[0]] = icon; 
} 
} 
return icon; 
} 

function setupOfficeMarkers() { 
allmarkers.length = 0; 
for (var i in officeLayer) { 
var layer = officeLayer[i]; 
var markers = []; 
for (var j in layer["places"]) { 
var place = layer["places"][j]; 
var icon = getIcon(place["icon"]); 
var title = place["name"]; 
var posn = new GLatLng(place["posn"][0], place["posn"][1]); 
var marker = createMarker(posn,title,icon); 
markers.push(marker); 
allmarkers.push(marker); 
} 
mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]); 
} 
mgr.refresh(); 
} 

function createMarker(posn, title, icon) { 
var marker = new GMarker(posn, {title: title, icon: icon, draggable:false }); 
return marker; 
} 

function reloadMarkers() { 
setupOfficeMarkers(); 
} 

は、私は、エラーの原因を見つけることができませんhttp://www.trendy-places.com/Amsterdam

でライブスクリプトを見ることができます。

ご協力いただきありがとうございます。

答えて

1

あなたの場所の配列の末尾のカンマを確認してください。 IEが別の要素を期待していて、エラーが発生している可能性があります。

"places": [ 
    { 
    "name": "USA", 
    "posn": [40.72, -73.9826] 
    }, 
{ 
    "name": "Europe", 
    "posn": [52.370, 4.8966] 
    }**,** 
+0

リックありがとうございました。私は末尾のカンマを削除しましたが、残念ながらエラーが発生します。私は上記の私のポストで実際のスクリプトを更新しました。このバグの原因は何でしょうか? – TrendyT

+0

スクリプトプロファイラを有効にして、正確なエラーの発生場所を確認しましたか?典型的な「警告」ダイアログボックスよりも少し詳細が得られるかもしれません。 – Rick

+0

お世話になりました。スクリプトプロファイラを使用すると、IEのF12関数を意味します。残念ながら、プロファイラはエラーに関する情報を私に提供しません。ここでは、次のデータがリストされている91行目のみを参照しています: 'var posn = new GLatLng(place ["posn"] [0]、place ["posn"] [1]); – TrendyT

関連する問題