我的问题是在帖子的最后。
我已尝试过将所有标记的计时器设置为四角的各种计算,但似乎没有任何效果。
每次我向markermanager添加一个标记时,我都会在下面调用此函数
public function markerSetBounds(someLat , someLng):void{
var bounds:LatLngBounds = new LatLngBounds();
for(var i:int = 0; i < myMarkers.length; i++)
{
var currentLatLon:LatLng = new LatLng(someLat , someLng);
bounds.extend(currentLatLon);
}
googleMap.setZoom(googleMap.getBoundsZoomLevel(bounds));
googleMap.setCenter(bounds.getCenter());
}
我相信我知道为什么这不起作用。我一次只发送一套lat,lng。
但是,当我尝试以下操作时,flex告诉我它不知道myMarkers[i].lat
的意思。
以下是我填充myMarkers数组的方法
var someMarker:Marker = new Marker(new LatLng(someLat , someLng), new MarkerOptions({tooltip:someAddress, hasShadow: true}));
myMarkers.push(someMarker);
这就是我想要遍历数组的方式,但flex并不了解.lat的含义。
for(var i:int = 0; i < myMarkers.length; i++)
{
var currentLatLon:LatLng = new LatLng(myMarkers[i].lat , myMarkers[i].lng);
bounds.extend(currentLatLon);
}
我的问题是我如何遍历myMarkers数组来设置currentLatLon。我也试过for each(var someObj:Marker in myMarkers)
,但一无所获。标记显示在地图上,但边界不起作用。
答案 0 :(得分:0)
你有没有尝试过这样的事情:
(myMarkers[i] as Marker).lat
在运行时或编译时这是一个问题吗?
答案 1 :(得分:0)
好的,我想出了问题是什么,我必须按正确的顺序放置。
首先,声明LatLngBounds。
其次,制作标记。
第三步,设置缩放
Forth,扩展界限。
bounds = new LatLngBounds();
covToXML = new XML(event.result);
xmlToList = new XMLList(covToXML);
listToCol = new XMLListCollection(xmlToList);
someLat = Number(listToCol.children().child("geometry").child("location").child("lat").text());
someLng = Number(listToCol.children().child("geometry").child("location").child("lng").text());
someAddress = String(listToCol.children().child("formatted_address").text());
var markerOptions:MarkerOptions = new MarkerOptions();
markerOptions.icon = new (whichIcon(GlobalVars.randomIcon));
markerOptions.tooltip = someAddress;
markerOptions.hasShadow = true;
someMarker = new Marker(new LatLng(someLat , someLng), markerOptions);
someMarker.addEventListener(MapMouseEvent.CLICK,markerClicked);
myMarkers.push(someMarker);
googleMap.addOverlay(someMarker);
for each(someMarker in myMarkers)
{
var newLatLng:LatLng = someMarker.getLatLng();
// Alert.show(newLatLng.toString());
bounds.extend(newLatLng);
}
googleMap.setCenter(bounds.getCenter());
googleMap.setZoom(googleMap.getBoundsZoomLevel(bounds));
感谢所有建议和问题,这些建议和问题帮助我找到了解决方案。