如何移动谷歌地图的中心位置

How to move the center position of google map

本文关键字:位置 谷歌地图 何移动 移动      更新时间:2023-09-26

我正在用以下代码创建一个脚本中的谷歌地图-

var mapElement,
    parent,
    mapOptions,
    map,
    marker,
    latLong,
    openMarker;
parent = document.getElementsByClassName('parent')[0];
mapElement = document.createElement('div');
latLong = new google.maps.LatLng(some_lat_from_db, some_long_from_db);
mapOptions = {
    center: latLong,
    zoom: 14,
    mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(mapElement, mapOptions);
marker = new google.maps.Marker({
    position: latLong,
    map: map,
    title: 'some title'
});
openMarker = function () {
    var infowindow = new google.maps.InfoWindow();
    infowindow.setContent('Some Content');
    infowindow.open(map, marker);
};
google.maps.event.addListener(marker, 'click', openMarker);
parent.appendChild(mapElement);
openMarker();

当使用这段代码时,默认情况下打开的信息窗口在地图视图口之外,所以它是不可见的。我首先尝试缩小信息窗口的大小,但没有成功。所以我想移动地图的中心一点,这样信息窗口仍然在视窗。

那么,我如何移动一些像素的中心,使信息窗口保持在视口中?

您可以使用.setCenter()来移动地图的中心

map.setCenter(marker.getPosition());

使用。fromlatlgtodivpixel()转换LatLngPoint添加偏移量,并使用。fromdivpixeltolatlng()将其转换回LatLng

忘记所有的废话这是什么工作,如果你想重用谷歌地图标记或移动谷歌地图标记,或重新居中谷歌地图标记。

var lo = <yourval>;
var la = <yourval>;
var midpoint = {lat:la, lng:lo };
marker.setPosition(midpoint);

如果你想销毁一个谷歌地图标记或删除一个谷歌地图标记

marker.setMap(null);