0

자바 스크립트를 통해 여러 마커를 만들었지 만 액션 스크립트에서 동일한 마커를 만들려고 시도하는 것은 상당히 어려운 것으로 입증되었습니다.flex google 여러 마커

위도 표시를 사용하여 마커를 추가하기 위해 LatLng을 검색하지만 한 마커 만 반환합니다. 첫 번째 또는 두 번째 중 하나입니다.

내 init 함수 내에는 마커 주소 배열과 방향에서 LatLng를 반환하는 호출이 있습니다. 기본적으로 시작과 끝을 동일한 것으로 배치하여 마커를 배치합니다.

  private function makeMarkers():void { 
      for (var x:Number= 0; x < markers.length; x++) { 
       loadMyXml("http://maps.googleapis.com/maps/api/geocode/xml?address="+markers[x]+"&sensor=false"); 
      } 
     } 

     private function loadMyXml(src:String):void { 
      httpService.url = src; 
      httpService.send(); 
     } 


      public function httpService_resultHandler(event:ResultEvent):void 
     { 
      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()); 

      // Alert.show(someLat +", "+ someLng + someAddress); 
      var someMarker:Marker = new Marker(new LatLng(someLat , someLng), new MarkerOptions({tooltip:someAddress, hasShadow: true})); 
      //googleMap.addOverlay(someMarker); 
      myMarkers.push(someMarker); 
      mgr.addMarkers(myMarkers, 1); 
      mgr.refresh(); 
      markerSetBounds(someLat , someLng); 
     } 

이제 나는 데 문제를이 범위를 설정하여 :

markers = ['11030 Hartsook st, North Hollywood, CA','15713 Ventura blvd, Encino, CA']; 
for (var i:Number = 0; i < markers.length; ++i) { 
from.text=markers[i]; 
textInput.text=markers[i]; 
processForm(evt); 
} 

private function processForm(event:Event):void { 
var directions:Directions = new Directions(); 
directions.addEventListener(DirectionsEvent.DIRECTIONS_SUCCESS, onDirectionsSuccess); 
directions.addEventListener(DirectionsEvent.DIRECTIONS_FAILURE, onDirectionsFail); 
directions.load("from: " + from.text + " to: " + textInput.text); 
} 

private function onDirectionsSuccess(event:DirectionsEvent):void{ 
      googleMap.clearOverlays(); 
      directionsSteps.removeAll(); 

      directions = event.directions; 
      var directionsPolyline:IPolyline = directions.createPolyline(); 
      googleMap.addOverlay(directionsPolyline); 

      /************************************* 
      * zoomout after retrieving directions 
      * ***********************************/ 
      var directionsBounds:LatLngBounds = directionsPolyline.getLatLngBounds(); 
      googleMap.setCenter(directionsBounds.getCenter()); 
      googleMap.setZoom(googleMap.getBoundsZoomLevel(directionsBounds)); 

      /************************************* 
      * create markers 
      * ***********************************/    
      startLatLng = directions.getRoute(0).getStep(0).latLng; 
      var endLatLng:LatLng = directions.getRoute(directions.numRoutes-1).endLatLng; 
      googleMap.addOverlay(new Marker(startLatLng)); 
      googleMap.addOverlay(new Marker(endLatLng)); 
      myMarkers.push(new Marker(startLatLng)); 
      mgr.addMarkers(myMarkers, myMarkers.length); 
      mgr.refresh(); 

      /************************************* 
      * create steps 
      * ***********************************/ 
      for (var r:Number = 0 ; r < directions.numRoutes; r++) { 
       var route:Route = directions.getRoute(r); 

       for (var s:Number = 0 ; s < route.numSteps; s++) { 
        var step:Step = route.getStep(s); 
        directionsSteps.addItem(step); 
       } 
      } 
} 
+0

무엇이 문제입니까 ?? – TMS

+0

첫 번째 마커 또는 마지막 마커 만 반환하는 이유는 무엇입니까? 왜 모두? – kronus

답변

0

OK, 나는 이전 코드를 포기하고 각 주소의 위도, LNG를 검색 할 HTTPService를를 사용했다. 지도는 마커가 추가되기 전에 초기 중심을 중심으로 유지됩니다.

다른 질문을 게시 할 준비가되었습니다.