Google maps api 3 Google Maps API v3标记除了图标之外是不同的,为什么?
我有一些简单的谷歌地图代码,目前在地图上放置了三个标记。标记在不同的位置显示正确,标题和信息窗口不同,但设置为不同的图标显示相同 我看过很多其他的帖子,但似乎没有一个有相同的问题。代码如下:Google maps api 3 Google Maps API v3标记除了图标之外是不同的,为什么?,google-maps-api-3,Google Maps Api 3,我有一些简单的谷歌地图代码,目前在地图上放置了三个标记。标记在不同的位置显示正确,标题和信息窗口不同,但设置为不同的图标显示相同 我看过很多其他的帖子,但似乎没有一个有相同的问题。代码如下: function codeAddressES(){ codeAddress("BN1 3EL","Title1","Here1", "Red"); codeAddress("BN1 4QU","Title2","Here2", "Yellow"); codeAddress("BN1 3DL
function codeAddressES(){
codeAddress("BN1 3EL","Title1","Here1", "Red");
codeAddress("BN1 4QU","Title2","Here2", "Yellow");
codeAddress("BN1 3DL","Title3","Here3", "Blue");
}
function codeAddress(address,title,ptContent,ptImage) {
var imgRed = 'http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_red.png';
var imgBlue = 'http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_blue.png';
var imgYellow = 'http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_yellow.png';
switch (ptImage){
case "Red":
image = imgRed;
break;
case "Blue":
image = imgBlue;
break;
case "Yellow":
image = imgYellow;
break;
}
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: title,
icon: image
});
google.maps.event.addListener(marker, 'click', function() {
var myHtml = '<strong>#' + ptContent+ '</strong><br/>' ;
infoWindow.setContent(myHtml);
infoWindow.open(map, marker);
});
函数代码地址(){
代码地址(“BN1 3EL”、“标题1”、“此处1”、“红色”);
代码地址(“BN1 4QU”、“标题2”、“此处2”、“黄色”);
代码地址(“BN1 3DL”、“标题3”、“此处3”、“蓝色”);
}
功能代码地址(地址、标题、内容、图片){
var imgRed=http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_red.png';
var imgBlue=http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_blue.png';
var imgYellowhttp://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_yellow.png';
开关(ptImage){
案例“红色”:
图像=imgRed;
打破
案例“蓝色”:
图像=imgBlue;
打破
案例“黄色”:
图像=imgYellow;
打破
}
geocoder.geocode({'address':address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
var marker=new google.maps.marker({
地图:地图,
位置:结果[0]。geometry.location,
标题:标题,,
图标:图像
});
google.maps.event.addListener(标记'click',函数(){
var myHtml='#'+ptContent+'
;
setContent(myHtml);
信息窗口。打开(地图、标记);
});
有人能给我指出正确的方向吗
谢谢
戈登
函数代码地址(){
代码地址(“BN1 3EL”、“标题1”、“此处1”、“红色”);
代码地址(“BN1 4QU”、“标题2”、“此处2”、“黄色”);
代码地址(“BN1 3DL”、“标题3”、“此处3”、“蓝色”);
}
功能代码地址(地址、标题、内容、图片){
var imgRed=http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_red.png';
var imgBlue=http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_blue.png';
var imgYellowhttp://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_yellow.png';
开关(ptImage){
案例“红色”:
图像=imgRed;
打破
案例“蓝色”:
图像=imgBlue;
打破
案例“黄色”:
图像=imgYellow;
打破
}
地理编码地址(地址、标题、内容、图像);
}
功能地理编码地址(地址、标题、内容、图像){
geocoder.geocode({'address':address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
extend(结果[0].geometry.location);
var marker=new google.maps.marker({
地图:地图,
位置:结果[0]。geometry.location,
标题:标题,,
图标:图像
});
google.maps.event.addListener(标记'click',函数(){
var myHtml='#'+ptContent+'
;
setContent(myHtml);
信息窗口。打开(地图、标记);
});
}else警报(“地理代码失败,状态:+状态”);
});
}
这是一个常见问题解答。地理编码是异步的。当回调函数运行时,所有请求都已发送,图标保留在最后一个值。您可以在地理编码器调用上使用函数闭包来修复它。您可以在搜索结果中找到一些示例/线索::-)@geocodezip非常感谢您花时间解释并展示一个示例,该示例已修复,并且一切正常。
function codeAddressES(){
codeAddress("BN1 3EL","Title1","Here1", "Red");
codeAddress("BN1 4QU","Title2","Here2", "Yellow");
codeAddress("BN1 3DL","Title3","Here3", "Blue");
}
function codeAddress(address,title,ptContent,ptImage) {
var imgRed = 'http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_red.png';
var imgBlue = 'http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_blue.png';
var imgYellow = 'http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_yellow.png';
switch (ptImage){
case "Red":
image = imgRed;
break;
case "Blue":
image = imgBlue;
break;
case "Yellow":
image = imgYellow;
break;
}
geocodeAddress(address, title, ptContent,image);
}
function geocodeAddress(address,title, ptContent,image) {
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
bounds.extend(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: title,
icon: image
});
google.maps.event.addListener(marker, 'click', function() {
var myHtml = '<strong>#' + ptContent+ '</strong><br/>' ;
infoWindow.setContent(myHtml);
infoWindow.open(map, marker);
});
} else alert("Geocode failed, status: "+status);
});
}