Google maps flex actionscript多个标记与工具提示或lat不匹配

Google maps flex actionscript多个标记与工具提示或lat不匹配,google-maps,apache-flex,actionscript,google-maps-markers,Google Maps,Apache Flex,Actionscript,Google Maps Markers,当我使用google的javascript API创建应用程序时,我也遇到了同样的问题,解决方案是关闭创建多个标记的回调函数 我似乎找不到一个制作多个自定义标记的例子,除了使用一些随机数学函数来创建多个标记 GlobalVars是一个包含静态公共var类型的类,它可以跟上地址、LAT、lngs等的数量 我尝试过使用markermanager,但它有一些问题,我最终放弃了 从 retrieveLatLngAddress.addEventListener(GeocodingEvent.GEOCOD

当我使用google的javascript API创建应用程序时,我也遇到了同样的问题,解决方案是关闭创建多个标记的回调函数

我似乎找不到一个制作多个自定义标记的例子,除了使用一些随机数学函数来创建多个标记

GlobalVars是一个包含静态公共var类型的类,它可以跟上地址、LAT、lngs等的数量

我尝试过使用markermanager,但它有一些问题,我最终放弃了

 retrieveLatLngAddress.addEventListener(GeocodingEvent.GEOCODING_SUCCESS, function(event:GeocodingEvent):void{
这就是我开始按地址进行地理编码的地方,而不是像以前那样使用httpservice,但我遇到了这样的问题:一个httpservice结果的返回速度会比另一个更快,这反过来会用错误的标记放置错误的数据

显然,我还没有找到解决办法,因为这种方法也在做同样的事情

问题是,如何检索多个标记信息,并使所有标记选项与返回的信息保持有序

            public function geocoderMarkersFailure(event:GeocodingEvent):void
        {
            var result:Number = event.status;
            statusTxt.text = "Error: "+result+" processing address, re-processing, please wait 10-25 seconds...";
            GlobalVars.statusCode = result;
            if(GlobalVars.statusCode == 500)
            {
                setTimeout(statusFiveHundred, 10000);
                GlobalVars.statusCode = 0;
            }
        }

            public function statusFiveHundred():void{
            this.parentDocument.passAllDestinations();
        }
代码如下:

            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...";
            }
        }
公共函数makeMultipleMarkers(destinationAllObj:Object):void{
删除标记();
myMarkers=[];
GlobalVars.myIcon=[];
GlobalVars.someAddress=[];
GlobalVars.sName=[];
markerMgr.clearMarkers();
GlobalVars.destinationnc=0;
RetrievelAtlingAddress=新的ClientGeocoder();
RetrievelAtlingAddress.addEventListener(GeocodingEvent.GEOCODING_成功,函数(事件:GeocodingEvent):void{
var结果:Placemark=GeocodingResponse(event.response)。placemarks[0];
var latLngStr:String=result.point.toString();
GlobalVars.panoLatLng=latLngStr.split(',');
var deleteLeftParen:String=GlobalVars.panolatling[0];
GlobalVars.panolatling[0]=deleteLeftParen.replace((“,”);
var deleteRightParen:String=GlobalVars.panolatling[1];
GlobalVars.panoLatLng[1]=deleteRightParen.replace(“),”);
边界=新的LatLngBounds();
var-request:URLRequest=newurlrequest(GlobalVars.myIcon[GlobalVars.destinationnc]);
var imageLoader:Loader=new Loader();
加载(请求);
imageLoader.name=String(GlobalVars.myIcon[GlobalVars.destinationnc]);
//警报显示(GlobalVars.panoLatLng[0]);
var tmpLatLng:LatLng=新LatLng(GlobalVars.panoLatLng[0],GlobalVars.panoLatLng[1]);
someMarker=新标记(tmpLatLng,新标记选项({
图标:imageLoader,
工具提示:destinationAllObj[GlobalVars.destinationInc].SNAME+','+GlobalVars.someAddress[GlobalVars.destinationInc],
哈沙多:错
}));
someMarker.addEventListener(MapMouseEvent.CLICK),函数(事件:MapMouseEvent):void{
var marker:marker=event.target作为标记;
var markerContent:String=marker.getOptions().tooltip.toString();
text输入.text=marker.getOptions().tooltip.toString();
openInfoWindow(新的InfoWindowOptions({content:markerContent}));
sendSomeLatLngToSv(event.latLng);
var lastIndexOfDashStr:String=marker.getOptions().icon.name;
GlobalVars.iconObj=lastIndexOfDashStr;
var tmpArr: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);
对于每个(myMarkers中的someMarker)
{
var newLatLng:LatLng=someMarker.getLatLng();
扩展(newLatLng);
}
GlobalVars.destinationnc++;
if(GlobalVars.newDestObj.length==GlobalVars.destinationnc)
{
statusTxt.text=“完成”;
setCenter(bounds.getCenter(),(googleMap.getBoundsZoomLevel(bounds))-2,MapType.HYBRID_-MAP_-TYPE);
//markerMgr.addMarkers(myMarkers,8,16);
//markerMgr.refresh();
}
});
RetrievelAtlingAddress.addEventListener(GeocodingEvent.GEOCODING_失败,geocoderMarkersFailure);
for(GlobalVars.destinationCounter=0;GlobalVars.destinationCounter            public function selectedItemChanged(event:ListEvent):void
        {
            this.parentDocument.flexGoogleMap.directionsSteps.removeAll();
            tempId = event.currentTarget.selectedItem.district_id;
            this.parentDocument.passIdToRemoteGetSchoolsLocations(tempId);
            setTimeout(mTimeOut, 3000);
        }

        public function mTimeOut():void{
            this.parentDocument.passIdToRemoteGetSchoolsLocations(tempId)
        }
            public function geocoderMarkersFailure(event:GeocodingEvent):void
        {
            var result:Number = event.status;
            statusTxt.text = "Error: "+result+" processing address, re-processing, please wait 10-25 seconds...";
            GlobalVars.statusCode = result;
            if(GlobalVars.statusCode == 500)
            {
                setTimeout(statusFiveHundred, 10000);
                GlobalVars.statusCode = 0;
            }
        }

            public function statusFiveHundred():void{
            this.parentDocument.passAllDestinations();
        }