• 在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);
    }());
  • 相关阅读:
    实验楼之Linux快捷、用户及文件权限、文件查看
    《生物信息学》——李霞;;生信概念
    MySQL 之 导出导入数据
    MySQL 之 扩展例子
    MySQL之创、增、删、改、查
    R 中数据导入
    神经网络,25个术语
    Python之文件输入输出,
    爬虫之BeautifulSoup, CSS
    Linux软连接和硬链接
  • 原文地址:https://www.cnblogs.com/darrenji/p/5156769.html
Copyright © 2020-2023  润新知