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);
}
}
}
무엇이 문제입니까 ?? – TMS
첫 번째 마커 또는 마지막 마커 만 반환하는 이유는 무엇입니까? 왜 모두? – kronus