Javascript google地图的移动中心(错误:无法读取未定义的属性“fromLatLngToContainerPixel”)
我使用Google Maps API请求一条路线,路线随后自动居中,因为我使用了选项preserveViewport:false。现在我想把重心移一点。因此,我通过以下代码进行了尝试: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
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));
});