zoukankan      html  css  js  c++  java
  • 在AngularJS中使用谷歌地图把当前位置显示出来

    如何使用谷歌地图把当前位置显示出来呢?

    --在html5中,为我们提供了navigator.geolocation.getCurrentPosition(f1, f2)函数,f1是定位成功调用的函数,f2是定位失败调用的函数,而且会把当前的地理位置信息作为实参传递给f1和f2函数。f1函数调用谷歌地图的API即可。



    如何展示呢?

    --需要一个提示信息和展示地图的一个区域。



    页面上,大致是这样:



    <map-geo-location height="400" width="600"></map-geo-location>

    <script src="angular.js"></script>
    <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script src=="mapGeoLocation.js"></script>



    Directive部分如下:

    (function(){
    
        var mapGeoLocation = ['$window', function($window){
            var template = '<p><span id="status">正在查找地址...</span></p>' + '<br /><div id="map"></div>',
                mapContainer = null,
                status = null;
                
            function link(scope, elem, attrs){
            
                //以Angular的方式获取Angular元素
                status = angular.element(document.getElementById('status'));
                mapContainer = angular.element(document.getElementById('map'));
                
                mapContainer.attr('style', 'height:' + scope.height + 'px;' + scope.width + 'px');
                
                $window.navigator.geolocation.getCurrentPosition(mapLocation, geoError);
            }
            
            //定位成功时调用
            function mapLocation(pos){
                status.html('found your location! Longitude: ' + pos.coords.longitude + ' Latitude: ' + pos.coords.latitude);
                
                var latlng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
                
                var optons = {
                    zoom:15,
                    center: latlng,
                    myTypeCOntrol: true,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };
                
                var map = new google.maps.Map(mapContainer[0], options);
                
                var marker = new google.maps.Markser({
                    position: latlng,
                    map: map, 
                    title: "Your location"
                });
            }
            
            //定位失败时调用
            function geoError(error){
                status.html('failed lookup ' + error.message);
            }
            
            return {
                restrict: 'EA', //默认
                scope:{
                    height: '@',
                    '@'
                },
                link: link,
                template: template
            }
        }];
    
        angular.module('direcitveModule',[])
            .direcitve('mapGeoLocation', mapGeoLocation);
    }());
  • 相关阅读:
    ActionScript 条件编译
    FLASH通讯小结
    关于ob_start()
    剖析PHP中的输出缓冲
    Ext.app.controller的refs
    php多线程解决之stream_socket_client
    谷歌的JQuery库
    PHP计划任务之关闭浏览器后仍然继续执行的函数
    关于php调用可执行程序,在后台运行而不让页面等待
    把预定义的字符串转化为html标签
  • 原文地址:https://www.cnblogs.com/darrenji/p/5156769.html
Copyright © 2011-2022 走看看