Aufgabenstellung
In eine Flex-Anwendung soll Google Maps integriert werden.
Ansatz
1.) Aufruf der Seite http://code.google.com/intl/de/apis/maps/documentation/flash/
2.) Runterladen der Flash-Bibliothek (SWC-Datei) und einfügen in das LIBS-Verzeichnis der Flex-Anwendung
3.) Anfordern des Schlüssels unter „Wie beginne ich…“ und eintragen in den Code unten.
Lösung
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import com.google.maps.overlays.Marker; import com.google.maps.controls.ZoomControl; import com.google.maps.geom.Attitude; import mx.controls.Alert; import com.google.maps.*; import com.google.maps.geom.*; import com.google.maps.services.GeocodingEvent; import com.google.maps.services.ClientGeocoder; import com.google.maps.controls.NavigationControl; import com.google.maps.controls.MapTypeControl; import com.google.maps.MapEvent; public function onMapReady(event:MapEvent):void { // Die Bedienelemente der Karte hinzufügen map.addControl(new MapTypeControl()); map.addControl(new NavigationControl()); this.geocodeLocation('Fulda, Am Rinnweg 15'); } public function onMapPreinitialize(event:MapEvent):void { var myMapOptions:MapOptions = new MapOptions(); myMapOptions.viewMode = View.VIEWMODE_2D; myMapOptions.mapType=MapType.NORMAL_MAP_TYPE; //myMapOptions.zoom=0; map.setInitOptions(myMapOptions); } private function geocodeLocation(location:String=''):void { var geocoder:ClientGeocoder = new ClientGeocoder(); geocoder.addEventListener(GeocodingEvent.GEOCODING_SUCCESS, geoCodeSuccess); geocoder.addEventListener(GeocodingEvent.GEOCODING_FAILURE, geoCodeFailure); if(location!='') { geocoder.geocode(location); } else { geocoder.geocode(search.text); } } private function geoCodeSuccess(event:GeocodingEvent):void { var placemarks:Array = event.response.placemarks; map.flyTo(placemarks[0].point, 18, new Attitude(35,60,35), 3); var marker:Marker = new Marker(placemarks[0].point); map.addOverlay(marker); } private function geoCodeFailure(event:GeocodingEvent):void { Alert.show('Also wissense, das find ich einfach ned....', 'Ähm...'); } ]]> </mx:Script> <mx:TitleWindow layout="vertical" width="100%" height="100%" title="Finde versteckte Schätze... (c) die 1st-level-caches Schludi&Mephi "> <maps:Map3D xmlns:maps="com.google.maps.*" id="map" mapevent_mapready="onMapReady(event)" mapevent_mappreinitialize="onMapPreinitialize(event)" width="100%" height="100%" key="HIER KOMMT DER BEANTRAGTE GOOGLE KEY REIN"/> <mx:HBox horizontalAlign="center" width="100%" height="30"> <mx:Label x="70" y="524" text="Da will ich hin:" width="120" fontWeight="bold"/> <mx:Button x="421" y="520" label="Suchen ..." click="{geocodeLocation()}"/> <mx:TextInput id="search" x="167" y="520" width="246"/> </mx:HBox> </mx:TitleWindow> </mx:Application>
Beispiel
http://baugebiete.fulda.de