gpt4 book ai didi

javascript - 是否可以在同一网站的多个页面上使用 Google Maps API?

转载 作者:行者123 更新时间:2023-12-03 11:43:20 24 4
gpt4 key购买 nike

我想使用三张 map ,两张在一页上,一张在另一页上,全部位于同一个网站中。我可以让一个页面工作,但不能让另一个页面工作,它往往是我选择在 window.onload 函数中执行的第一个页面。所以我知道我的代码没有问题,因为我可以让它们全部工作,只是不能同时工作。我唯一能想到的是,也许是因为我在每个页面上使用相同的 API key ?如果是这样,我如何获得单独的 key ?这是我的代码:

///////////////////////////////////////////////////////////// Google Maps
function scaligeroMap() {
var scaligeroLocation = new google.maps.LatLng(45.766281, 10.8088879);

var mapOptions = {
'center' : scaligeroLocation,
'zoom' : 17,
};

var map = new google.maps.Map(document.getElementById('scaligeroMap'), mapOptions);
var marker = new google.maps.Marker({
'position' : scaligeroLocation,
'map' : map,
'title' : 'Castello Scaligero'
});

//////////////////////////////////////////////Pop up containing address when marker is clicked
var popupContent = 'Castello Malcesine:<br>';
popupContent += 'Via Castello Scaligero, 39<br>';
popupContent += '37018 Malcesine Verona<br>';
popupContent += 'Italy';

var infowindow = new google.maps.InfoWindow({
content: popupContent,
maxWidth: 200
});

google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});

}

function alCorsaroMap() {
var alCorsaroLocation = new google.maps.LatLng(45.7658856, 10.8099179);

var mapOptions = {
'center' : alCorsaroLocation,
'zoom' : 17,
};

var map = new google.maps.Map(document.getElementById('alCorsaroMap'), mapOptions);
var marker = new google.maps.Marker({
'position' : alCorsaroLocation,
'map' : map,
'title' : 'Al Corsaro'
});

//////////////////////////////////////////////Pop up containing address when marker is clicked
var popupContent = 'Ristorante Al Corsaro:<br>';
popupContent += 'Via Paina, 17<br>';
popupContent += '37018 Malcesine Verona<br>';
popupContent += 'Italy';

var infowindow = new google.maps.InfoWindow({
content: popupContent,
maxWidth: 200
});

google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});

}

function oasiMap() {
var oasiLocation = new google.maps.LatLng(45.80406, 10.842993);

var mapOptions = {
'center' : oasiLocation,
'zoom' : 17,
};

var map = new google.maps.Map(document.getElementById('oasiMap'), mapOptions);
var marker = new google.maps.Marker({
'position' : oasiLocation,
'map' : map,
'title' : 'Oasi Bar'
});

//////////////////////////////////////////////Pop up containing address when marker is clicked
var popupContent = 'Hotel Oasi Beach:<br>';
popupContent += 'Via Gardesana, 510<br>';
popupContent += '37018 Malcesine Verona<br>';
popupContent += 'Italy';

var infowindow = new google.maps.InfoWindow({
content: popupContent,
maxWidth: 200
});

google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});

}


window.onload = function() {
scaligeroMap();
alCorsaroMap();
oasiMap();
};

所以使用这段代码scaligeroMap();显示在使用它的页面上,但 alCorsaroMap();和 oasiMap();不显示位于单独页面上的内容。如果我把 scaligeroMap();位于底部,以便最后执行 alCorsaroMap(); & 绿洲 map ();可以工作,但是 scaligeroMap();惯于。我怎样才能让它们全部显示出来?

最佳答案

在尝试对页面上不存在的元素运行代码之前,您需要检查 map 元素是否存在。

您可以在 window.onload 函数上执行此操作:

var scaligeroMapElement =  document.getElementById('scaligeroMap');
if (typeof(scaligeroMapElement) != 'undefined' && scaligeroMapElement != null)
{
scaligeroMap();
}

var alCorsaroMapElement = document.getElementById('alCorsaroMap');
if (typeof(alCorsaroMapElement) != 'undefined' && alCorsaroMapElement != null)
{
alCorsaroMap();
}

var oasiMapElement = document.getElementById('oasiMap');
if (typeof(oasiMapElement) != 'undefined' && oasiMapElement != null)
{
oasiMap();
}

假设您的每个 map 都有不同的 ID。

如果你有 jQuery,你可以这样做:

if ($('#alCorsaroMap').length > 0) {
oasiMap();
}

关于javascript - 是否可以在同一网站的多个页面上使用 Google Maps API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26166371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com