博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高德地图:定位、覆盖物
阅读量:4631 次
发布时间:2019-06-09

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

 

高德地图需登录需注册登录,在个人中心中添加项目,拿到认证的一串web id。

app.service("Map_g",function ($q) { this.getMessage=function (map) { //定位系统 var defer = $q.defer(); map.plugin('AMap.Geolocation', function() {
geolocation = new AMap.Geolocation({ enableHighAccuracy: true, timeout: 10000, buttonOffset: new AMap.Pixel(10, 20), zoomToAccuracy: false, buttonPosition:'RB' }); map.addControl(geolocation); geolocation.getCurrentPosition(); AMap.event.addListener(geolocation, 'complete', onComplete); AMap.event.addListener(geolocation, 'error', onError); }); function onComplete(data) { defer.resolve(data); } function onError(data) { defer.reject(data); } return defer.promise; } ; this.coverOperate=function (map,lang,lat,name) { //覆盖物 var marker = new AMap.Marker({}); marker.setMap(map); var markerContent = document.createElement("div"); markerContent.className="markWrap"; var markerImg = document.createElement("img"); markerImg.className = "markerlnglat"; markerImg.src = "img/48.png"; markerContent.appendChild(markerImg); var markerSpan = document.createElement("span"); markerSpan.className = 'marker'; markerSpan.innerHTML = name; markerContent.appendChild(markerSpan); marker.setContent(markerContent); marker.setPosition([lang,lat]); }; }); $scope.getMap = function() { //定位开始,获取地理位置信息,拿到经纬度进行覆盖物操作。 var geolocation; $scope.map = new AMap.Map('allmap', { resizeEnable: true }); Map_g.getMessage($scope.map).then(function (data) { if(data.addressComponent != undefined && data.addressComponent != null && data.addressComponent.district){ $scope.isOpenLocation = false; $scope.original = {lang:data.position.getLng(),lat:data.position.getLat()}; $scope.require(data.addressComponent.province,data.addressComponent.city,data.addressComponent.district); $scope.headerName = data.addressComponent.district; $scope.$parent.district = data.addressComponent.district; }else{ $scope.getAllShops(); $scope.isOpenLocation = true; } },function (data) { angular.element("#gif").hide(); $scope.getAllShops(); $scope.isOpenLocation = true; }); }; $scope.getMap(); //$scope.map = $scope.map = new AMap.Map('allmap', { resizeEnable: true}); //longitude ,latitude 经纬度 //name 覆盖物展示文字 Map_g.coverOperate($scope.map,val.longitude,val.latitude,val.name); //调用函数实现覆盖物的操做。 //计算两地点的距离 var lnglat = new AMap.LngLat($scope.original.lang,$scope.original.lat); val.distance=parseInt(lnglat.distance([val.longitude,val.latitude])) + "米";

 

转载于:https://www.cnblogs.com/changyaoself/p/7692169.html

你可能感兴趣的文章
Centos7 安装 telnet 服务
查看>>
Windows Azure Virtual Network (6) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (1)...
查看>>
3.1、final、finally、 finalize
查看>>
国家气象局提供的天气预报接口
查看>>
MongoDB 删除数据库
查看>>
前端基础之JQuery
查看>>
AppStore SDK
查看>>
springboot 学习笔记(三)
查看>>
Nginx 主要应用场景
查看>>
记录一次爬取某昵称网站的爬虫
查看>>
lattice diamond 3.7安装破解
查看>>
FPGA研发之道(25)-管脚
查看>>
BFS之三(单向bfs和康托压缩)
查看>>
Web App、Hybrid App与Native App的设计差异
查看>>
ASP.NET将原始图片按照指定尺寸等比例缩放显示图片
查看>>
测试用例设计方法基础理论知识
查看>>
基于visual Studio2013解决面试题之0804复杂链表
查看>>
find_in_set
查看>>
【转帖】SQLServer登录连接失败(error:40-无法打开到SQLServer的连接)的解决方案...
查看>>
ibatis的there is no statement named xxx in this SqlMap
查看>>