当我使用ng-map和angularjs缩小时,标记会移动

时间:2015-08-20 13:44:17

标签: angularjs zoom marker ng-map

我正在使用ngmap和angularjs在谷歌地图中创建标记。一切都好,但是当我缩小地图时标记会移动。

我的代码:

 var app = angular.module('dataview', ['ngMap'])
    app.controller('DataViewCtrl', function($scope, $http)
    {
      $scope.markers=[{lat:30.2817, lng:-81.5273},{lat:30.6824, lng:-81.9680},{lat:31.0004, lng:-82.1580}];

      $scope.mapcenter={lat:$scope.markers[0].lat, lng:$scope.markers[0].lng};
    }
<script src = 'http://maps.google.com/maps/api/js?v=3&sensor=true'></script>
 <script src = '/assets/vendor/ngmap/build/scripts/ng-map.min.js'></script>
    <map center="{{mapcenter.lat}}, {{mapcenter.lng}}" zoom="5" ng-if="is_map" style="height: 500px;">
        <marker ng-repeat="pos in markers" position="{{pos.lat}}, {{pos.lng}}"></marker>
    </map>

Resul OK

enter image description here

Bad Resul(缩小时)

enter image description here

3 个答案:

答案 0 :(得分:2)

我有同样的问题,我想你把这个例子的最小代码。就我而言,问题出在标记图标的SVG图像中。我通过改变他人的图像来解决问题。如果您遇到同样的问题,请尝试使用默认图标进行测试。

答案 1 :(得分:1)

您要实现的目标的实例如下:

http://plnkr.co/edit/P5Tlui

注意缩小时现在如何保持标记位置。

我通过将标记的坐标分配如下来解决了这个问题:

$scope.markers = [{
    lat: 30.2817,
    lng: -81.5273
  }, {
    lat: 30.6824,
    lng: -81.9680
  }, {
    lat: 31.0004,
    lng: -82.1580
  }];

答案 2 :(得分:0)

出于某种原因,在css文件中我放了

canvas {width:100%!important;身高:360px!important;}

我删除了这一行并解决了问题。 cavas样式与html中为地图定义的高度冲突