zoukankan      html  css  js  c++  java
  • 高德地图:定位、覆盖物

    高德地图需登录需注册登录,在个人中心中添加项目,拿到认证的一串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])) + "米";
  • 相关阅读:
    做嵌入式编程,为什么用的是C语言而不是C++呢?
    结对-四则运算答题器-设计文档
    Windows Forms Thread Safety: InvalidOperationException and Invoking
    DialogForm
    Views in Full Screen Mode
    Painting on a Panel
    A Gradient Title Bar for modal and modeless dialog
    MSN Messenger Type Status Bar Popup Message Box
    EZOptionsDlg
    Transparent Static Text In Dialogs
  • 原文地址:https://www.cnblogs.com/changyaoself/p/7692169.html
Copyright © 2011-2022 走看看