flex actioncript LatLngBounds не может заставить его работать - PullRequest
0 голосов
/ 07 декабря 2011

Мой вопрос находится в самом конце поста.

Я перепробовал все, от установки таймера для всех маркеров, которые должны быть установлены для всех видов вычислений четырех углов, но, похоже, ничего не происходит.работает.

Каждый раз, когда я добавляю маркер в 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), но он ничего не находит.Маркеры отображаются на карте, но границы не работают.

Ответы [ 2 ]

0 голосов
/ 08 декабря 2011

ОК, я понял, в чем проблема, и мне пришлось расставить вещи в правильном порядке.

Сначала объявите LatLngBounds.

Во-вторых, создайте маркеры.

В-третьих, установите масштаб

Далее, расширьте границы.

                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));

Спасибо за все предложения и вопросы, которые помогли мне найти решение.

0 голосов
/ 07 декабря 2011

Вы пытались сделать что-то вроде:

(myMarkers[i] as Marker).lat

Это проблема во время выполнения или во время компиляции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...