123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- (function() {
- 'use strict';
- angular
- .module('app')
- .directive('gaodeMap', Directive);
- Directive.$inject = [];
- function Directive() {
- var directive = {
- link: link,
- restrict: 'E',
- template: '<div id="container"></div>',
- replace: true,
- scope: {
- options: '='
- }
- };
- return directive;
- function link($scope, element, attrs) {
- var map, geolocation, marker, geocoder;
- //加载地图,调用浏览器定位服务
- map = new AMap.Map('container', {
- resizeEnable: true,
- zoom: 17
- });
- map.plugin('AMap.Geolocation', function() {
- geolocation = new AMap.Geolocation({
- enableHighAccuracy: true, //是否使用高精度定位,默认:true
- timeout: 10000, //超过10秒后停止定位,默认:无穷大
- maximumAge: 0, //定位结果缓存0毫秒,默认:0
- convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
- showButton: true, //显示定位按钮,默认:true
- buttonPosition: 'RB', //定位按钮停靠位置,默认:'LB',左下角
- buttonOffset: new AMap.Pixel(10, 20), //定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
- showMarker: true, //定位成功后在定位到的位置显示点标记,默认:true
- showCircle: true, //定位成功后用圆圈表示定位精度范围,默认:true
- panToLocation: true, //定位成功后将定位到的位置作为地图中心点,默认:true
- zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
- useNative: true
- });
- map.addControl(geolocation);
- geolocation.getCurrentPosition();
- // AMap.event.addListener(geolocation, 'complete', function(ret) {
- // console.log(ret.message);
- // }); //返回定位信息
- // AMap.event.addListener(geolocation, 'error', function(ret) {
- // console.log(ret.message);
- // }); //返回定位出错信息
- // marker = new AMap.Marker({
- // map: map,
- // bubble: true,
- // content: '<div class="marker-route marker-marker-bus-from"></div>' //自定义点标记覆盖物内容,
- // });
- // marker.setLabel({
- // offset: new AMap.Pixel(20, 0),
- // content: "我在这里"
- // });
- // //geocoder = new AMap.Geocoder({});
- // map.on('click', function(e) {
- // marker.setPosition(e.lnglat);
- // geocoder.getAddress(e.lnglat, function(status, result) {
- // if (status == 'complete') {
- // document.getElementById('input').value = result.regeocode.formattedAddress
- // }
- // });
- // });
- });
- // $scope.$watch("options", function(newValue, oldValue) {
- // if ($scope.options) {
- // map.setCenter([$scope.options.lng, $scope.options.lat]);
- // marker.setPosition([$scope.options.lng, $scope.options.lat]);
- // }
- // }, true);
- }
- }
- })();
|