0
埋め込みマップとカスタムマーカーを含むクイックウェブサイトを構築しました。 Chromeのパソコンのデスクトップで正常に動作し、Google Pixelで正常に動作しますが、Safari/iPhoneでMacで確認したところ、マップは表示されずレンダリングされません(Chromeで動作)。以下はGoogle Maps JS埋め込みが動作しない
はコードのサンプルです:
<div id="oakville-map" class="row map"></div>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=MYKEY&callback=initMap"></script>
<script>
//Maps
var iconBase = '/pathtomarker/markers/red_circle_';
var icons = {
one: {
icon: iconBase + '1.png'
},
two: {
icon: iconBase + '2.png'
},
three: {
icon: iconBase + '3.png'
},
four: {
icon: iconBase + '4.png'
},
five: {
icon: iconBase + '5.png'
},
six: {
icon: iconBase + '6.png'
}
};
var element = document.getElementById('oakville-map');
if (typeof(element) != 'undefined' && element != null)
{
//Oakville Map
function initMap() {
var tmhOakville = {lat: 43.5113563, lng: -79.6873432};
var Oakvillemap = new google.maps.Map(document.getElementById('oakville-map'), {
zoom: 13,
center: tmhOakville
});
var features = [
{
position: tmhOakville,
type: 'one'
}
];
// Create markers.
features.forEach(function(feature) {
var marker = new google.maps.Marker({
position: feature.position,
icon: icons[feature.type].icon,
map: Oakvillemap
});
});
}
}
</script>
様々な特定のページ上のマップが、構文のためのブロックは、それらのすべてについて同じである場合、私はいくつかのより多くを持っています。ジオコーディングは必要ありません。カスタムマーカーを単純に埋め込むだけです。
これがsafari/iOSに読み込まれない理由を誰にも見られますか?ありがとう
あなたがECMAScript 5であるarray.forEachを使用していることに注目してください。比較的新しいものです。おそらく互換性の問題が発生する可能性があります。しかし、「ブレイク」と言っても、それはどういう意味ですか?デベロッパーコンソールを確認しましたか? – barryhunter
@barryhunter by break私はそれがコンテナにJSをレンダリングしたり実行しなかったことを意味しましたが、私は私の問題を解決しました。各ifステートメントはinitMap関数を上書きし、最後のマップだけがロードされます。なぜそれがクロムで壊れていないのか分かりませんが、まあまあです。ありがとう! – abprecious