javascript - 基于标记的 Google map 中心

标签 javascript google-maps google-maps-api-3 google-maps-markers centering

我想根据动态加载的标记将 Google map 居中。现在我在 map 上显示两个标记(请参阅 script.js 文件):

$mapster.mapster('addMarker', {
  location: 'Golden Gate Bridge, San Francisco, CA',
  content: 'Example text 2'
});

$mapster.mapster('addMarker', {
  lat: 37.751350,
  lng: -122.485833,
  content: '<div style="color: #f00;">Example text 1</div>'
});

一切正常,因为我定义了 map 居中的坐标(请参阅map-options.js文件):

mapster.MAP_OPTIONS = {
  center: {
    lat: 37.791350,
    lng: -122.435883
  },
  zoom: 10,
  disableDefaultUI: false,
  scrollwheel: true,
  draggable: true,
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  zoomControlOptions: {
    position: google.maps.ControlPosition.LEFT_BOTTOM,
    style: google.maps.ZoomControlStyle.DEFAULT
  },
  panControlOptions: {
    position: google.maps.ControlPosition.LEFT_BOTTOM
  },
  cluster: {
    options: {
      styles: [{
        url: 'https://raw.githubusercontent.com/googlemaps/v3-utility-library/master/markerclusterer/images/m2.png',
        height: 56,
        width: 55
        //textColor: '#000'
        //textSize: 12
      }, {
        url: 'https://raw.githubusercontent.com/googlemaps/v3-utility-library/master/markerclusterer/images/m1.png',
        height: 56,
        width: 55
        //textColor: '#000'
        //textSize: 12
      }]
    }
  },
  geocoder: true
};

如何根据加载的标记将我的 Google map 居中?我基本上想实现这样的目标: Center a Google Map based on Markers

这是我的代码: https://plnkr.co/edit/sduZKBXIIijhnkCIpSoR?p=preview

最佳答案

post 中所述您链接后,您需要在添加坐标时将坐标添加到 bounds 对象,然后对其调用 fitBounds(bounds) 。请参阅documentation .

尝试遵循此控制流程:

let location1 = new google.maps.LatLng(lat, lng);
let location2 = new google.maps.LatLng(lat, lng);
let location3 = new google.maps.LatLng(lat, lng);

let marker = new google.maps.Marker({
    position: location1,
    map: map
});

marker = new google.maps.Marker({
    position: location2,
    map: map
});

marker = new google.maps.Marker({
  position: location3,
  map: map
});

let bounds = new google.maps.LatLngBounds();
bounds.extend(location1);
bounds.extend(location2);
bounds.extend(location3);
map.fitBounds(bounds);

如果您有一个很长的列表,您可能需要对数组或其他内容进行一些迭代。

关于javascript - 基于标记的 Google map 中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47501223/

相关文章:

javascript - 完美的触摸就绪、iPad 兼容和内容滑动就绪网站的框架

javascript - iPhone/iPad 上的自动对焦表单元素

reactjs - google-map-react 可拖动标记 - onChildMouseMove 不适用于移动设备

google-maps-api-3 - 调整谷歌地图的大小以适应一组标记

javascript - 如何在谷歌地图上绘制路线

javascript - 作为函数参数传递的匿名函数的范围

javascript - 电话号码验证 Javascript

javascript - 当 Google map 生成事件时

android - 无法使用 Pubnub 教程解析方法 requestLocationUpdates

google-maps-api-3 - Google map API v3 - KML 层更改