博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angularJs集成百度地图
阅读量:6912 次
发布时间:2019-06-27

本文共 6601 字,大约阅读时间需要 22 分钟。

app.controller('mapSignController',function($scope,$rootScope,Message, $window,$uibModalInstance){        var script = document.createElement("script");        script.src = 'http://api.map.baidu.com/api?v=2.0&ak=自己的ak&callback=baiduMapLoaded';        document.body.appendChild(script);        $window.baiduMapLoaded = function () {            // 实例化一个地图            $scope.mapObj = new BMap.Map(document.getElementById("map-container"));            // 鼠标双击地图时会触发此事件            $scope.mapObj.addEventListener('dblclick', function(event) {                var pt = event.point;                // 移除之前的标注                if ($scope.mapNewMarker) {                    $scope.mapObj.removeOverlay($scope.mapNewMarker);                }                var myIcon = new BMap.Icon("http://api.map.baidu.com/images/markers.png",                                             new BMap.Size(19, 25), {                                                 offset: new BMap.Size(0, 0),                                                 imageOffset: new BMap.Size(0, -250)                                            });                $scope.mapNewMarker = new BMap.Marker(pt, { icon: myIcon });                $scope.mapObj.addOverlay($scope.mapNewMarker);                $scope.mapNewMarker.enableDragging();                var mapGeoc = new BMap.Geocoder();                                $scope.mapNewMarker.addEventListener("click", function(event) {                    mapGeoc.getLocation(event.target.point, function(rs) {                        var address = rs.address;                        console.log(event.target.point);                        console.log(rs);                    });                });                mapGeoc.getLocation(pt, function(rs) {                    var address = rs.address;                    console.log(rs);                    $scope.addressInfo.lat = rs.point['lat'];                    $scope.addressInfo.lng = rs.point['lng'];                    $scope.addressInfo.searchAddr = address;                 });            });                        //定义一个控件类            function ResourceMapControl(){                            }            ResourceMapControl.prototype = new BMap.Control();                        $scope.mapObj.addControl(new ResourceMapControl());                        // 左上角,添加比例尺            var top_left_control = new BMap.ScaleControl({ anchor: BMAP_ANCHOR_TOP_LEFT });             // 左上角,添加默认缩放平移控件            var top_left_navigation = new BMap.NavigationControl();             var overView = new BMap.OverviewMapControl();            // 右下角缩略图            var overViewOpen = new BMap.OverviewMapControl({ isOpen: false, anchor: BMAP_ANCHOR_BOTTOM_RIGHT });            $scope.mapObj.enableScrollWheelZoom();            $scope.mapObj.enableKeyboard();            $scope.mapObj.disableDoubleClickZoom();            $scope.mapObj.addControl(top_left_navigation);            $scope.mapObj.addControl(top_left_control);            $scope.mapObj.addControl(overViewOpen);            $scope.mapObj.addControl(new BMap.MapTypeControl());                        //浏览器定位            var geolocation = new BMap.Geolocation();            geolocation.getCurrentPosition(function(r){                if(this.getStatus() == BMAP_STATUS_SUCCESS){                    var mk = new BMap.Marker(r.point);                    $scope.mapObj.centerAndZoom(r.point, 12);                }else {                    console.log('failed'+this.getStatus());                    var point = new BMap.Point(34.819696, 113.63872);                    $scope.mapObj.centerAndZoom(point, 1);                }                    },{enableHighAccuracy: true})                    }                $scope.addressInfo = {                searchAddr:null,                lat:null,                lng:null        }                $scope.searchAddress = function(){            if(!$scope.addressInfo.searchAddr){                Message.danger('请输入地址')            }else{                if ($scope.mapNewMarker) {                     $scope.mapObj.removeOverlay($scope.mapNewMarker);                 }                var myGeo = new BMap.Geocoder();                      // 将地址解析结果显示在地图上,并调整地图视野                    myGeo.getPoint($scope.addressInfo.searchAddr, function(point){                          if (point) {                               $scope.mapObj.centerAndZoom(point, 16);                               $scope.mapObj.addOverlay(new BMap.Marker(point));                         $scope.addressInfo.lat = point['lat'];                         $scope.addressInfo.lng = point['lng'];                    }                       },                 "河南省");            }        }                $scope.closeModal = function(){            $uibModalInstance.close($scope.addressInfo);        }});
$scope.openMap = function(){                            event.stopPropagation();// 阻止点击事件冒泡                            var modalInstance = $uibModal.open({                                keyboard: 'false',                                backdrop: 'static',                                size: 'lg',                                templateUrl: 'mediajob/session/template/mapSignModal.html',                                scope: $scope,                                controller: 'mapSignController',                                resolve: {                                    task: function() {                                        return task;                                    },                                    activity: function() {                                        return activity;                                    }                                }                            });                                                        modalInstance.result.then(function (result) {                                $scope.sign.place = result.searchAddr;                                $scope.sign.lat = result.lat;                                $scope.sign.lng = result.lng;                                console.log(result);                            }, function (reason) {                                console.log(reason);                            });                        }

 

var city = document.getElementById("cityName").value;        if(city != ""){            map.centerAndZoom(city,11);      // 用城市名设置地图中心点        }

 

转载于:https://www.cnblogs.com/liangblog/p/10464253.html

你可能感兴趣的文章
Android架构分析之使用自定义硬件抽象层(HAL)模块
查看>>
VC6.0启动File-open和Project-add file to project崩溃的解决方法
查看>>
死锁线程探讨Java中的死锁现象
查看>>
Java HashMap的死循环 以及 LRUCache的正确实现
查看>>
地信快享论坛-见习版
查看>>
hdu1244(dp)
查看>>
VMwarevSphere 服务器虚拟化之二十九 桌面虚拟化之安装View副本服务器
查看>>
基于Levenberg-Marquardt训练算法的BP网络Python实现
查看>>
由判断三一点是否在三角形内部而引发的思考.....
查看>>
玩转动态编译:四、封装
查看>>
JavaScript 调试
查看>>
装腔指南_百度百科
查看>>
Android动态的全屏和退出全屏
查看>>
Ubuntu 中软件的安装、卸载以及查看的方法总结
查看>>
文本阴影:text-shadow
查看>>
freeswitch 音 视频 支持的编码
查看>>
Linux碎碎念
查看>>
搭建你的第一个Django应用程序
查看>>
ES5严格模式(Strict mode)
查看>>
Contoso 大学 - 2 – 实现基本的增删改查
查看>>