3

在这个使用 NgMap 的 AngularJS SPA 中,我在数据过滤上设置了地图引脚。在地图的初始加载时,地图以海洋中的某个地方为中心,而不是我在中心参数的地图对象中设置的坐标。我也试过在地图初始化上设置这个,但没有成功。

  $scope.$on('mapInitialized', function(event, map) {

    var myLatlng = new google.maps.LatLng(43.6650000, -79);
    var mapOptions = {
      draggable: true,
      zoom: 4,
      center: myLatlng
    }
    var map = new google.maps.Map(document.getElementById("map"), mapOptions);


  });
<map zoom="3" center="[43.6650000,-79]" scrollwheel="false" zoom-to-include-markers="true">
  <marker ng-repeat="site in filteredPins track by $index" position="[{{site.Latitude}},{{site.Longitude}}]" id="{{site.Id}}" title="{{site.SiteName}}"></marker>
</map>

<map>如果不是通过中心参数或地图初始化时地图选项中的中心选项,在哪里/如何在加载时设置初始地图位置?

Plunkr:http ://plnkr.co/edit/u75fJT?p=preview

4

3 回答 3

2

您的代码是正确的,初始地图中心正好在您指定的坐标处,问题似乎出zoom-to-include-markers="true"在加载后更改地图中心的 html 上

<map zoom="3" center="[43.6650000,-79]" scrollwheel="false" zoom-to-include-markers="true">

删除zoom-to-include-markers="true",它会工作

于 2015-11-24T14:36:59.847 回答
0

我遇到了这个问题,因为映射初始化发生在绑定到中心的值是 [0,0] 时。当实际中心填充到控制器中时,地图不可见,因此它没有重新居中。

我解决它的方法是当我使地图可见时做一个明确的 $scope.$digest

于 2018-10-20T10:30:00.727 回答
0

您提供的经纬度似乎在海洋中。我也尝试过,并在海洋中向我展示。:)。

只需将纬度和经度更改为正确的位置,请注意,zoom-to-include-markers="true" 在我的工作良好,它不会导致地图显示海洋中的坐标。

于 2016-08-26T07:21:14.947 回答