【问题标题】:How to move Google Map to where the mark was added [duplicate]如何将谷歌地图移动到添加标记的位置[重复]
【发布时间】:2021-04-20 01:20:09
【问题描述】:

大家好,我在我的项目中使用 Google Maps API,但问题是当我添加标记时,地图不会移动到标记所在的位置。标记正在添加,但如果您不缩小并转到它所在的位置,它是不可见的。

关于如何实现这一点的任何提示?

let myMap = new google.maps.Map(document.getElementById('map'), {
     center: {lat: -34.397, lng: 150.644},
     zoom: 8
});

这是添加标记:

const marker = new google.maps.Marker({
     position: {
         lat: 37.7749,
         lng: 122.4194
     },
     map: myMap,
});

【问题讨论】:

  • 也许我遗漏了一些东西,但你为什么不 center 标记坐标处的地图?
  • 我尝试使用myMap.center = { lat: 37.7749, lng: 122.4194},但它不起作用。还有另一种方法吗?另外,我会在屏幕上有多个标记,如果它们能居中就太好了。
  • 您需要.setCenter()。不过,您究竟希望它如何工作?您当前以lat: -34.397, lng: 150.644 为中心初始化地图;为什么不将其替换为您想要作为中心的实际坐标?如果这还不够,请澄清您的问题。
  • @ChrisG setCenter() 有效。谢谢!一开始地图上不会有任何东西,这就是我使用随机位置的原因。用户将查询他们想要的任何内容,然后我将获得一组坐标以在地图上添加标记。但如果我总是能在地图上显示所有这些点,那就太好了。
  • 我明白了,在这种情况下,您需要计算所有 lats 和 lngs 的最小值和最大值,然后将它们相加并除以 2;这给出了多个标记的中心。

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


【解决方案1】:

这对我有用:

   addMarker(position: google.maps.LatLng) {
        if (this.marker) {
            this.marker.setMap(null);
        }
        this.marker = new google.maps.Marker({
            position,
            map: this.map,
            draggable: true,
            clickable: true,
            // icon: 'assets/images/favicon.png',
        });
        this.marker.setVisible(true);
    }

要使地图居中,您可以这样做:

 setCenter(lat: number, lng: number) {
        this.map.setCenter(new google.maps.LatLng(lat, lng));
    }

【讨论】:

  • 注意:如果地图设置为空,标记将被移除。然后您可以添加一个新的,然后将其设置为可见。
  • 嘿@Amr Omar 是的,这是setCenter 方法。谢谢大佬
猜你喜欢
  • 2015-04-26
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 1970-01-01
相关资源
最近更新 更多