闽烟博客欢迎您! http://www.fjycw.com/blog/user1/olien/index.html
 
闽烟博客欢迎您!
 
Flex中如何使用Google Maps的例子
[ 2008-8-20 15:38:00 | By: 梦境天元 ]
 

和前面Flex中如何使用Yahoo! Maps的例子类似的,接下来的例子演示了Flex/ActionScript项目中如何使用Google Maps。

首先你需要做的是从这里获取Google Maps API key

然后从这里下载Google Maps ActionScript 3.0 component

接下去将zip压缩包内的东西复制到工程的/libs/中就可以了。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):

下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white"
  6.         creationComplete="init();">
  7.     <mx:Script>
  8.         <![CDATA[
  9.             import com.google.maps.LatLng;
  10.             import com.google.maps.Map;
  11.             import com.google.maps.MapEvent;
  12.             import com.google.maps.controls.MapTypeControl;
  13.             import com.google.maps.controls.PositionControl;
  14.             import com.google.maps.controls.ZoomControl;
  15.             import com.google.maps.services.ClientGeocoder;
  16.             import com.google.maps.services.GeocodingEvent;
  17.             import com.google.maps.services.GeocodingResponse;
  18.             import com.google.maps.services.Placemark;
  19.             import mx.controls.Alert;
  20.             import mx.events.ResizeEvent;
  21.             private var googleMap:Map;
  22.             private var geocoder:ClientGeocoder;
  23.             private function init():void {
  24.                 googleMap = new Map();
  25.                 googleMap.key = APP_ID;
  26.                 googleMap.addEventListener(MapEvent.MAP_READY, googleMap_mapReady);
  27.                 googleMap.setSize(new Point(mapContainer.width, mapContainer.height));
  28.                 googleMap.addControl(new ZoomControl());
  29.                 googleMap.addControl(new MapTypeControl());
  30.                 mapContainer.addChild(googleMap);
  31.             }
  32.             private function geocoder_geocodingSuccess(evt:GeocodingEvent):void {
  33.                 var result:Placemark = GeocodingResponse(evt.response).placemarks[0];
  34.                 googleMap.setCenter(result.point, 13);
  35.             }
  36.             private function geocoder_geocodingFailure(evt:GeocodingEvent):void {
  37.                 Alert.show("Unable to geocode address: " + evt.name);
  38.             }
  39.             private function googleMap_mapReady(evt:MapEvent):void {
  40.                 geocoder = new ClientGeocoder();
  41.                 geocoder.addEventListener(GeocodingEvent.GEOCODING_SUCCESS, geocoder_geocodingSuccess);
  42.                 geocoder.addEventListener(GeocodingEvent.GEOCODING_FAILURE, geocoder_geocodingFailure);
  43.                 geocoder.geocode(textInput.text);
  44.             }
  45.             private function button_click(evt:MouseEvent):void {
  46.                 geocoder.geocode(textInput.text);
  47.             }
  48.             private function mapContainer_resize(evt:ResizeEvent):void {
  49.                 if (googleMap) {
  50.                     googleMap.setSize(new Point(mapContainer.width, mapContainer.height));
  51.                 }
  52.             }
  53.         ]]>
  54.     </mx:Script>
  55.     <mx:String id="APP_ID" source="appid.txt" />
  56.     <mx:ApplicationControlBar dock="true">
  57.         <mx:Form styleName="plain">
  58.             <mx:FormItem label="Address:"
  59.                     direction="horizontal">
  60.                 <mx:TextInput id="textInput"
  61.                         text="601 Townsend St, San Francisco, CA 94103" />
  62.                 <mx:Button id="button"
  63.                         label="Submit"
  64.                         click="button_click(event);" />
  65.             </mx:FormItem>
  66.         </mx:Form>
  67.     </mx:ApplicationControlBar>
  68.     <mx:UIComponent id="mapContainer"
  69.             width="100%"
  70.             height="100%"
  71.             resize="mapContainer_resize(event);" />
  72. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

 

 
 
发表评论:
闽烟博客欢迎您!
公告
闽烟博客欢迎您!
时间记忆
闽烟博客欢迎您!
最新日志
闽烟博客欢迎您!
最新评论
闽烟博客欢迎您!
最新回复
闽烟博客欢迎您!
我的好友
我的相册
站点信息
闽烟博客欢迎您!
生活因感动而精彩,理想在创造中放飞