首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使fitBounds工作

无法使fitBounds工作
EN

Stack Overflow用户
提问于 2015-11-25 02:01:37
回答 1查看 3.5K关注 0票数 0

我不知道应该在哪里包含fit边界,不管我把它放在哪里,地图的中心位置都是initMap指定的世界的一半,而不是标记的位置。

调用只是一个对象数组,它存储一组lat/lngs

代码语言:javascript
复制
function initMap()
{
    map = new google.maps.Map(document.getElementById('map'),
    {
        center: { lat: -34.397, lng: 150.644 },
        zoom: 12,
        scaleControl: true
    }); 
}

// Place Markers on Map
function initMarkers()
{
    for (var i = 0; i < Calls.length; i++)
    {
        var marker = new google.maps.Marker({
            position: Calls[i],
            map: map
        });
    }
}

function fit()
{
    var bound = new google.maps.LatLngBounds();
    for (var i in Calls)
    {
        bound.extend(Calls[i].getPosition());
    }
    map.fitBounds(bound);
}

// Initialize GoogleMap on Page Load
window.onload = function()
{
    initMap();
    initMarkers();
    fit();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 02:27:23

发布的代码生成一个javascript错误(不是问题中最初报告的错误,但已经删除了):Uncaught TypeError: Calls[i].getPosition is not a functionCalls是一个对象数组,所以它不会有一个.getPosition方法。

代码语言:javascript
复制
function fit()
{
    var bound = new google.maps.LatLngBounds();
    for (var i in Calls)
    {
        bound.extend(new google.maps.LatLng(Calls[i].lat,Calls[i].lng));
    }
    map.fitBounds(bound);
}

代码片段:

代码语言:javascript
复制
var Calls = [{
  lat: 42,
  lng: -72
}, {
  lat: 40.7127837,
  lng: -74.0059413
}, {
  lat: 40.735657,
  lng: -74.1723667
}];

function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {
      lat: -34.397,
      lng: 150.644
    },
    zoom: 12,
    scaleControl: true
  });
}

// Place Markers on Map
function initMarkers() {
  for (var i = 0; i < Calls.length; i++) {
    var marker = new google.maps.Marker({
      position: Calls[i],
      map: map
    });
  }
}

function fit() {
  var bound = new google.maps.LatLngBounds();
  for (var i in Calls) {
    bound.extend(new google.maps.LatLng(Calls[i].lat, Calls[i].lng));
  }
  map.fitBounds(bound);
}

// Initialize GoogleMap on Page Load
window.onload = function() {
  initMap();
  initMarkers();
  fit();
}
代码语言:javascript
复制
html,
body,
#map {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
代码语言:javascript
复制
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map"></div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33907300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档