Javascript google地图的移动中心(错误:无法读取未定义的属性“fromLatLngToContainerPixel”)

Javascript google地图的移动中心(错误:无法读取未定义的属性“fromLatLngToContainerPixel”),javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我使用Google Maps API请求一条路线,路线随后自动居中,因为我使用了选项preserveViewport:false。现在我想把重心移一点。因此,我通过以下代码进行了尝试: var overlay_1 = new google.maps.OverlayView(); overlay_1.draw = function () {}; overlay_1.setMap(map_1); var point_1 point_1 = overlay_1.getProjection().fro

我使用Google Maps API请求一条路线,路线随后自动居中,因为我使用了选项preserveViewport:false。现在我想把重心移一点。因此,我通过以下代码进行了尝试:

var overlay_1 = new google.maps.OverlayView();
overlay_1.draw = function () {};
overlay_1.setMap(map_1);

var point_1
point_1 = overlay_1.getProjection().fromLatLngToContainerPixel(map_1.getCenter());
point_1.x = point_1.x + 300;
map_1.setCenter(overlay_1.getProjection().fromContainerPixelToLatLng(point_1));
当我启动网页时,出现以下错误:

未捕获类型错误:无法读取属性“fromLatLngToContainerPixel” 未定义的

正如您在my上看到的,当我将代码放入控制台时,代码正在工作

有人知道为什么我在加载网页时出错吗?

在.getProjection方法返回有效结果之前,必须等待在覆盖上触发projection\u changed事件

相关问题:

代码段:

函数初始化{ var map_1=新的google.maps.map document.getElementByIdmap_画布{ 中心:新google.maps.LatLng37.4419,-122.1419, 缩放:13, mapTypeId:google.maps.mapTypeId.ROADMAP }; var overlay_1=新的google.maps.OverlayView; overlay_1.draw=函数{}; 覆盖图1.setMapmap 1; var point_1; google.maps.event.addListeneroverlay_1,“投影已更改”,函数{ 点_1=叠加_1.getProjection.fromLatLngToContainerPixelmap_1.getCenter; 点_1.x=点_1.x+300; map_1.setCenteroverlay_1.getProjection.fromContainerPixelToLatLngpoint_1; }; } google.maps.event.AddDomainListenerWindow,加载,初始化; html, 身体 地图画布{ 身高:100%; 宽度:100%; 边际:0px; 填充:0px }
你是对的,我再也没有收到错误信息了。但我仍然有一个问题。正如我所说的,在我想换班之前,我先申请一条路线。请看一下这个。通过删除这两条线,它正在工作:'var waypoints_1=processWaypoints[['-42.4008174','173.681386'],['-42.1550941','173.9284645'],['-41.6695819','174.0720845'],['-41.2905926','174.0010044'],];requestRouteReisen-43.5320544172.6362254,-41.0332502173.0192419,航路点1,“蓝色”,地图1;请提出另一个问题,并说明您的新问题。
var overlay_1 = new google.maps.OverlayView();
overlay_1.draw = function() {};
overlay_1.setMap(map_1);

var point_1;
google.maps.event.addListener(overlay_1, 'projection_changed', function() {
  point_1 = overlay_1.getProjection().fromLatLngToContainerPixel(map_1.getCenter());
  point_1.x = point_1.x + 300;

  map_1.setCenter(overlay_1.getProjection().fromContainerPixelToLatLng(point_1));
});