當我使用google的javascript API創建應用程序並且解決方案是在創建多標記的回調函數上關閉時,我遇到了同樣的問題。flex actionscript多標記標記不匹配工具提示或經緯度
我似乎無法找到一個製作多個自定義標記的例子,除了使用一些隨機數學函數創建多個標記之外的任何東西。
GlobalVars是包含靜態公共變種類型跟上然而,許多addressess,拉特,LNGS,等我一直在使用markermanager試過一類...
但它有一些問題,我最後只給了上。
與
retrieveLatLngAddress.addEventListener(GeocodingEvent.GEOCODING_SUCCESS, function(event:GeocodingEvent):void{
這是我開始地理編碼的地址,而不是使用的HTTPService,因爲我之前做的開始,但我遇到了一個的HTTPService結果的問題將返回比另一種更快,這反過來將錯誤的數據與錯誤的標記。
顯然,我還沒有找到解決方案,因爲這種方式是做同樣的事情。
問題在於,如何檢索多個標記信息並保留所有的markeroptions,以便返回信息。
下面的代碼:
public function makeMultipleMarkers(destinationAllObj:Object):void {
removeRouteMarkers();
myMarkers = [];
GlobalVars.myIcon = [];
GlobalVars.someAddress = [];
GlobalVars.sName = [];
markerMgr.clearMarkers();
GlobalVars.destinationInc = 0;
retrieveLatLngAddress = new ClientGeocoder();
retrieveLatLngAddress.addEventListener(GeocodingEvent.GEOCODING_SUCCESS, function(event:GeocodingEvent):void{
var result:Placemark = GeocodingResponse(event.response).placemarks[0];
var latLngStr:String = result.point.toString();
GlobalVars.panoLatLng = latLngStr.split(',');
var deleteLeftParen:String = GlobalVars.panoLatLng[0];
GlobalVars.panoLatLng[0] = deleteLeftParen.replace("(","");
var deleteRightParen:String = GlobalVars.panoLatLng[1];
GlobalVars.panoLatLng[1] = deleteRightParen.replace(")","");
bounds = new LatLngBounds();
var request:URLRequest = new URLRequest(GlobalVars.myIcon[GlobalVars.destinationInc]);
var imageLoader:Loader = new Loader();
imageLoader.load(request);
imageLoader.name = String(GlobalVars.myIcon[GlobalVars.destinationInc]);
// Alert.show(GlobalVars.panoLatLng[0]);
var tmpLatLng:LatLng = new LatLng(GlobalVars.panoLatLng[0], GlobalVars.panoLatLng[1]);
someMarker = new Marker(tmpLatLng, new MarkerOptions({
icon: imageLoader,
tooltip: destinationAllObj[GlobalVars.destinationInc].SNAME+', '+GlobalVars.someAddress[GlobalVars.destinationInc],
hasShadow: false
}));
someMarker.addEventListener(MapMouseEvent.CLICK, function(event:MapMouseEvent):void{
var marker:Marker = event.target as Marker;
var markerContent:String = marker.getOptions().tooltip.toString();
textInput.text = marker.getOptions().tooltip.toString();
marker.openInfoWindow(new InfoWindowOptions({content: markerContent}));
sendSomeLatLngToSv(event.latLng);
var lastIndexOfDashStr:String = marker.getOptions().icon.name;
GlobalVars.iconObj = lastIndexOfDashStr;
var tmpArr:Array = new Array;
var tmpStr:String = event.currentTarget.getOptions().tooltip;
tmpArr = tmpStr.split(',');
GlobalVars.panoAddr[0] = tmpArr[1];
GlobalVars.sName[0] = tmpArr[0];
});
myMarkers.push(someMarker);
googleMap.addOverlay(someMarker);
for each(someMarker in myMarkers)
{
var newLatLng:LatLng = someMarker.getLatLng();
bounds.extend(newLatLng);
}
GlobalVars.destinationInc++;
if(GlobalVars.newDestObj.length == GlobalVars.destinationInc)
{
statusTxt.text = "Complete";
googleMap.setCenter(bounds.getCenter(), (googleMap.getBoundsZoomLevel(bounds))-2, MapType.HYBRID_MAP_TYPE);
// markerMgr.addMarkers(myMarkers, 8, 16);
// markerMgr.refresh();
}
});
retrieveLatLngAddress.addEventListener(GeocodingEvent.GEOCODING_FAILURE, geocoderMarkersFailure);
for(GlobalVars.destinationCounter = 0; GlobalVars.destinationCounter < destinationAllObj.length; GlobalVars.destinationCounter++)
{
// Alert.show(destinationAllObj[GlobalVars.destinationCounter].ICON);
GlobalVars.someAddress[GlobalVars.destinationCounter] = destinationAllObj[GlobalVars.destinationCounter].SLOC;
GlobalVars.sName[GlobalVars.destinationCounter] = destinationAllObj[GlobalVars.destinationCounter].SNAME;
if(destinationAllObj[GlobalVars.destinationCounter].ICON == "")
{
GlobalVars.myIcon[GlobalVars.destinationCounter] = "images/school_32.png";
// Alert.show(GlobalVars.destinationCounter+" "+GlobalVars.myIcon[GlobalVars.destinationCounter]);
}
else
{
GlobalVars.myIcon[GlobalVars.destinationCounter] = destinationAllObj[GlobalVars.destinationCounter].ICON;
}
statusTxt.text = "Processing data, please wait...";
}
for(GlobalVars.destinationCounter = 0; GlobalVars.destinationCounter < destinationAllObj.length; GlobalVars.destinationCounter++)
{
var tempURL:String = "http://kronusproductions.com/mycarpaysme_ajax/php/google_lat_lng_flex_lausd.php?addr="+destinationAllObj[GlobalVars.destinationCounter].SLOC;
// loadMyXml(tempURL);
retrieveLatLngAddress.geocode(destinationAllObj[GlobalVars.destinationCounter].SLOC);
statusTxt.text = "Processing data, please wait...";
}
}