|
for(var i=0;i<branchs.value.length;i++)
{
this["var marker"+i]=createMarker(new GLatLng(branchs.value[i].Longitude,branchs.value[i].Latitude),branchs.value[i].Name,i+1);
//eval("var marker"+i+"="+createMarker(new GLatLng(branchs.value[i].Longitude,branchs.value[i].Latitude),branchs.value[i].Name,i+1));
map.addOverlay(this["var marker"+i]);
}
上面红色字体是两种实现动态定义变量的方法,但是第二种出现问题了,因为左边为对象,而用eval进行操作时会把对象看成字符变量,这就有问题了。在网上找了好久都没有解决方法。因此就用了第一种。有知道第二种的解决方法的请告之,非常感谢
function createMarker(point,message,index,title) {
// Create a lettered icon for this point using our icon class
var letteredIcon = new GIcon(baseIcon);
letteredIcon.image = "http://www.becod.com/images/map_ico/gmap_" + index + ".png";
// 设置 GMarkerOptions 对象
markerOptions = { icon:letteredIcon,title:title};
var marker = new GMarker(point, markerOptions);
GEvent.addListener(marker, "mouseover", function() {
marker.openInfoWindowHtml(message); });
return marker;
} |
|