загрузить данные маркера в Google Flash Maps MXML Custom InfoWindow - PullRequest
0 голосов
/ 12 мая 2011

Я попытался принять этот рецепт от Шейна Доолана, см. Ниже (источник: http://cookbooks.adobe.com/post_Google_Maps_Custom_Info_Window-17492.html). Я мог получить данные из mysql с помощью php (например, http://code.google.com/apis/maps/articles/phpsqlflex.html) и наложения на карту, однако я не смогЗагрузите данные, также пользовательское информационное окно mxml при щелчке по маркерам.* Mxml-файл компонента Google Info Window:

<s:Label text="Your info window"
         fontSize="20"
         fontWeight="bold"
         textAlign="center"/>

<mx:DataGrid height="100%"
             width="100%">
    <mx:columns>
        <mx:DataGridColumn headerText="some"/>
        <mx:DataGridColumn headerText="info"/>
        <mx:DataGridColumn headerText="here"/>
    </mx:columns>
</mx:DataGrid>

Ответы [ 2 ]

0 голосов
/ 12 июня 2012

Рад, что кто-то нашел мой пост в Adobe Cookbooks полезным, и вы не первый, у кого возникли проблемы с получением данных из приложения в информационном окне.Думаю, пришло время обновить статью.

В любом случае, чтобы ответить на ваш вопрос, компонент GoogleMapsInfoWindow определяется вами, поэтому его можно легко изменить, чтобы иметь переменные для хранения данных, которые вы хотите отобразить.

В приведенном выше примере вы можете добавить коллекцию массивов в качестве общедоступной привязываемой переменной и связать эту коллекцию с сеткой данных.Затем при создании информационного окна в « onMarkerClick » вы задаете коллекцию (и любые другие необходимые вам переменные) под комментарием « //», если необходимо , для обновления любых данных, отображаемых в информационном окне..

Обновлен файл mxml компонента Google Info Window:

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Declarations>
        <s:ArrayCollection id="dataProvider"/>
        <!-- other variables go here -->
    </fx:Declarations>

    <s:layout>
        <s:VerticalLayout/>
    </s:layout>

    <s:Label text="Your info window"
             fontSize="20"
             fontWeight="bold"
             textAlign="center"/>

    <mx:DataGrid height="100%"
                 width="100%" dataProvider="{dataProvider}">
        <mx:columns>
            <mx:DataGridColumn headerText="ID" dataField="id"/>
            <mx:DataGridColumn headerText="Name" dataField="name"/>
            <mx:DataGridColumn headerText="Description" dataField="desc"/>
        </mx:columns>
    </mx:DataGrid>

</s:Group>

Обновлена ​​функция onMarkerClick:

public function onMarkerClick(event:MapMouseEvent):void
{
    // fetch clicked marker
    var marker:Marker = event.target as Marker;

    // update any data displayed in info window if needed
    infoWindow.dataProvider = new Arraycollection( [ {id:1, name:"one", desc: "test one"}, {id:2, name:"two", desc: "test two"}] );

    // eg/ inforWindow.title = "title goes here";
    // eg/ inforWindow.imageURL = "http://url.com/to/some/image.jpg";

    // display info window
    marker.openInfoWindow(new InfoWindowOptions({width: infoWindow.width, height: infoWindow.height, drawDefaultFrame: true, customContent: infoWindow}));
}
0 голосов
/ 15 марта 2012

Вы можете использовать mx.core.FlexGlobals.

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