javascript - 移动谷歌地图中心javascript api

标签 javascript maps

在我的项目中,我想将 map 的中心移动到新的坐标。这是我的 map 代码

function initialize() {
    var mapOptions = {
      center: new google.maps.LatLng(0, 0),
      zoom: 4,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        mapOptions);
  }
  function moveToLocation(lat, lng){
     var center = new google.maps.LatLng(lat, lng);
     var map = document.getElementById("map_canvas");
     map.panTo(center);

  }

moveToLocation 函数确实被调用,但 map 没有重新居中。知道我错过了什么吗?

最佳答案

您的问题是,在 moveToLocation 中,您使用 document.getElementById 尝试获取 Map 对象,但这只得到您是一个 HTMLDivElement,而不是您期望的 google.maps.Map 对象。因此,您的变量 map 没有 panTo 函数,这就是它不起作用的原因。您需要的是将 map 变量隐藏在某个地方,它应该按计划工作。您可以像这样使用全局变量:

window.map = undefined;      // global variable

function initialize() {
  const mapOptions = {
    center: new google.maps.LatLng(0, 0),
    zoom: 4,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  // assigning to global variable:
  window.map = new google.maps.Map(
    document.getElementById("map_canvas"), mapOptions);
}

function moveToLocation(lat, lng){
  const center = new google.maps.LatLng(lat, lng);
  // using global variable:
  window.map.panTo(center);
}

在此处查看正在运行的 jsFiddle:http://jsfiddle.net/fqt7L/1/

关于javascript - 移动谷歌地图中心javascript api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12699300/

相关文章:

javascript - 如何通过匹配文本来选择下拉选项?

google-maps - 中国 map - 卫星 map 和默认街道 map 哪个是正确的?这是否意味着地理编码结果是错误的?

javascript - Titanium iPhone Mapview 不显示来自引脚注释的标题或副标题

javascript - 内容编辑器模式弹出窗口中的自定义 SharePoint 2013 列表/表单仅在表单所在的列表中打开...不在弹出窗口中

javascript - 如何使用 localStorage 存储复选框值? ( react +钩子(Hook))

Javascript之谜: variables in functions

r - 在 map 上绘制坐标

javascript - 为什么我不能复制函数的调用方法

c# - 在 WPF 控件 C# 中嵌入 Google map

geolocation - 根据经纬度查找最近的机场