· 在线留言 · 关于我们
全国7X24小时服务热线:
029-8831-1253
 
当前位置:首页>信息化频道>信息技术

信息技术

在地图中显示自己的位置
西安软件公司, 西安软件开发 http://www.jzsoftit.com , 西安网站建设, 西安网站制作 http://www.jzsoftit.cn

用Google地图显示了访问者所在的位置...


看了一下google map的flash api..
实现起来非常方便..感叹一下google map的强大..


swf效果地址:http://blog.l4cd.net/google/googlemap.swf


流程大概这样
1.先获取访客IP,然后通过IP获取用户地理位置信息..(这一步我直接调用了http://www.webxml.com.cn/提供的接口)
2.调用ClientGeocoder.geocode获取该地理位置于google map上的集合..
3.获取第一个位置..用Map.setCenter定位地图..
4.用Map.addOverlay标注位置..
5.用Map.openInfoWindow弹出Tip提示..


code~~

01.<?xml version="1.0" encoding="utf-8"?>
02.<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontFamily="Verdana" fontSize="12">
03.    <mx:Script>
04.        <![CDATA[
05.            import com.google.maps.InfoWindowOptions;
06.            import com.google.maps.Map;
07.            import com.google.maps.MapType;
08.            import com.google.maps.overlays.Marker;
09.            import com.google.maps.services.ClientGeocoder;
10.            import com.google.maps.services.GeocodingEvent;
11.             
12.            import mx.controls.Alert;
13.            import mx.rpc.events.FaultEvent;
14.            import mx.rpc.events.ResultEvent;
15.             
16.            private var geocoder:ClientGeocoder;
17.            //by l4cd.net 
18.            private function onMapReady(event:Event):void
19.            {
20.                map.enableContinuousZoom();
21.                map.enableScrollWheelZoom();
22.                geocoder = new ClientGeocoder();
23.                geocoder.addEventListener(GeocodingEvent.GEOCODING_SUCCESS,
24.                    function(event:GeocodingEvent):void {
25.                        var placemarks:Array = event.response.placemarks;
26.                        if (placemarks.length > 0) {
27.                            map.setCenter(placemarks[0].point, 5, MapType.NORMAL_MAP_TYPE);
28.                            var marker:Marker = new Marker(placemarks[0].point);
29.                            map.addOverlay(marker);
30.                            map.openInfoWindow(placemarks[0].point, new InfoWindowOptions({title:"欢迎访问 L4cd.Net 简单工作",content: "来自<"+here+">的访客"}));
31.                        }
32.                    });
33.                geocoder.addEventListener(GeocodingEvent.GEOCODING_FAILURE,
34.                    function(event:GeocodingEvent):void {
35.                        trace("Geocoding failed");
36.                        Alert.show("获取地理位置失败","L4cd.Net 简单工作");
37.                    });
38.                 
39.                 
40.                ip.getGeoIPContext();
41.            }
42.            private var here:String;
43.            protected function ip_resultHandler(event:ResultEvent):void
44.            {
45.                here = event.result[1];
46.                geocoder.geocode(here);
47.            }
48. 
49.            protected function ip_faultHandler(event:FaultEvent):void
50.            {
51.                Alert.show("获取地理位置失败","L4cd.Net 简单工作");
52.            }
53. 
54.        ]]>
55.    </mx:Script>
56.    <mx:WebService result="ip_resultHandler(event)" fault="ip_faultHandler(event)" wsdl="" id="ip">    
57.    </mx:WebService>
58.    <maps:Map xmlns:maps="com.google.maps.*" language="zh-CN" id="map" mapevent_mapready="onMapReady(event)"
59.              width="100%" height="100%" key="{api_key}"/>
60.</mx:Application>

其中api_key需要你自己申请一个开发用的key..
只要用google账号登陆..填写你需要使用地图服务的域名即可

 

 

关于我们  | 果蔬质量追溯系统  | 网站建设  | 网站推广  | 网站运营  | 软件开发  | 软硬件集成  | 软件选型  | 软件外包  | 系统托管  | 成功案例   | IT硬件  | 常见问题  | 在线留言  |  联系方式
  © 2005 www.jzsoftit.com  西安捷众软件科技有限公司 版权所有
地址:西安市高新区科技路东口中天国际B座19层 电话:029-88311253   QQ:1009213309  Email:jzsoftit@163.com