Невозможно отобразить Google Map через API в Flex SDK - PullRequest
0 голосов
/ 27 марта 2010

Я использую mxmlc для компиляции примеров из Google, чтобы начать использовать Google Maps API в Flex 4. Но после компиляции файла swf карта не загружается.

Я зарегистрировался на ключ API Скачал и включил SDK Maps в конфигурационный файл xml, используемый во время компиляции C: \ SDK \ Flex4 \ рамки \ Flex-config.xml

<external-library-path>
    <path-element>libs/google/maps/lib/map_flex_1_18.swc</path-element>
</external-library-path>

Foo.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<maps:Map xmlns:maps="com.google.maps.*" id="map" mapevent_mapready="onMapReady(event)" 
  width="100%" height="100%" key="{KEY}"/>
<mx:Script>
    <![CDATA[

    import com.google.maps.LatLng;
    import com.google.maps.Map;
    import com.google.maps.MapEvent;
    import com.google.maps.MapType;

    private function onMapReady(event:Event):void {
      this.map.setCenter(new LatLng(40.736072,-73.992062), 14, MapType.NORMAL_MAP_TYPE);
    }
    ]]>
</mx:Script>
</mx:Application>

Любые советы о том, куда идти отсюда? Я могу без проблем скомпилировать базовый проект flex и отобразить компоненты, которые я вставил, так что я думаю, что это как-то связано с ключом API?

Спасибо за помощь

1 Ответ

0 голосов
/ 27 октября 2010

Если ваша функция onMapReady вызывается, ваш API-ключ, вероятно, в порядке (в противном случае вы получите ошибку)

У меня была точно такая же проблема.Но добавление следующего к функции onMapReady (), похоже, исправило это:

private function onMapReady(event:Event):void 
            {
                map.enableScrollWheelZoom();
                map.enableContinuousZoom();
                map.addControl(new ZoomControl());
                this.map.setCenter(new LatLng(40.736072,-73.992062), 14, MapType.NORMAL_MAP_TYPE);
            }

Вы также должны рассмотреть возможность использования последней версии библиотеки, которая сейчас находится на версии 20 К сожалению, Google пока не "официально"поддерживает Flex 4, так что я думаю, что там могут быть и другие ошибки.

Обратите внимание, что если вы используете https, вам также нужно добавить вызов к Security.allowInsecureDomain("maps.googleapis.com");

...