gpt4 book ai didi

javascript - 谷歌地图 API 3 - Javascript : Markers don't appear if created in function

转载 作者:行者123 更新时间:2023-11-30 10:31:27 25 4
gpt4 key购买 nike

问题是:如果我尝试在 initialize() 函数中创建标记,一切正常,但如果我尝试在另一个函数中创建标记,标记将不会出现。

GoogleMap.js

var map;
function initialize() {
var initial_mapcenter = new google.maps.LatLng(45.697068,9.668598);
var map = new google.maps.Map(document.getElementById("map-canvas"),{ zoom: 10, center: initial_mapcenter, mapTypeId: google.maps.MapTypeId.ROADMAP});

var LatLngA1 = new google.maps.LatLng(45.69467,9.603195);
var marker = new google.maps.Marker({
position: LatLngA1,
map: map,
title: "A1"
});

var LatLngB2 = new google.maps.LatLng(45.653408,9.618301);
createMarker(LatLngB2,"B2","Test B2");
}

function createMarker(point,name) {
var marker = new google.maps.Marker({
position: point,
map: map,
title: name
});
}

第一个 (A1) 出现,第二个 (B2) 不出现。

我想保留函数 createMarker,因为我也想用它来添加 InfoWindows。

我应该在初始化函数中创建新标记(然后修改它们)还是我的代码中存在某种错误?

最佳答案

初始化的映射变量是初始化函数的局部变量。

var map = new google.maps.Map(document.getElementById("map-canvas"),{ zoom: 10, center: initial_mapcenter, mapTypeId: google.maps.MapTypeId.ROADMAP});

将该行更改为(删除它前面的“var”):

map = new google.maps.Map(document.getElementById("map-canvas"),{ zoom: 10, center: initial_mapcenter, mapTypeId: google.maps.MapTypeId.ROADMAP});

或(另一个选项),将其传递给 createMarker 调用(并删除全局范围内的定义):

function createMarker(map, point,name) {
var marker = new google.maps.Marker({
position: point,
map: map,
title: name
});
}

并这样调用它:

createMarker(map, LatLngB2,"B2");// removed the unused fourth argument...

关于javascript - 谷歌地图 API 3 - Javascript : Markers don't appear if created in function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16739412/

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