我在我的某个网站上使用Google Maps v3 API,一切正常。但是从昨天起我每次尝试访问地图页面时都会突然发现这个错误:
Error: Script terminated by timeout at:
f@http://maps.googleapis.com/maps-api-v3/api/js/32/1a/map.js:1:175
next@http://maps.googleapis.com/maps-api-v3/api/js/32/1a/map.js:2:310
hx@http://maps.googleapis.com/maps-api-v3/api/js/32/1a/map.js:7:457
_.jl.prototype.Yb<@http://maps.googleapis.com/maps-api-v3/api/js/3/1a/map.js:54:163
Uy@http://maps.googleapis.com/maps-api-v3/api/js/32/1a/map.js:38:313
Xy/<@http://maps.googleapis.com/maps-api-v3/api/js/32/1a/map.js:39:307
知道为什么会这样吗?
答案 0 :(得分:3)
您的代码如何? 今天,我意识到我遇到了同样的问题(它在过去的几个月里一直在工作)并来到这里寻求答案,但我自己最终偶然发现了一个解决方案。
旧代码:
<script>
function initMap(lat,lon) {
var uluru = {lat: parseFloat(lat), lng: parseFloat(lon)};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: uluru
});
}
改为:
<script>
function initMap(lat,lon) {
var uluru = {lat: lat, lng: lon};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: uluru
});
}
请注意,在更改之后,我解析了我的latidue&amp;在调用initMap函数之前浮动的经度字符串。
答案 1 :(得分:3)
这是纬度和经度的问题。
纬度和经度应为“漂浮”。数字。如果我们将其他数据类型传递给它,它会冻结浏览器,因为它正在等待具有错误数据类型的Google响应。
function drawMap( lat, lng ) { lat = parseFloat(lat); lng = parseFloat(lng); if ( ! isNaN( lat ) && ! isNaN( lng ) ) // Before sending it to google let check if they are valid values
{
var mapOptions = {
center: new google.maps.LatLng(44.5452, -78.5389),
zoom: 5
};
map = new google.maps.Map(document.getElementById('vehicle_country_region_from_map'), mapOptions);
}}
答案 2 :(得分:0)
我有同样的问题并搜索了答案,但找不到任何答案。 atlast做了一个解决方法。这可以帮助您暂时解决问题。
在我的代码之前
script.src = "https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=initialize";
将其修改为
script.src = "https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=initMap&key=YOUR_API_KEY";
你可以从https://developers.google.com/maps/documentation/javascript/get-api-key生成api密钥,并按照https://developers.google.com/maps/
中的initMap()代码进行操作这解决了我的问题。
答案 3 :(得分:0)
好的,发现我的问题: (问题是导致浏览器页面因原始问题中的错误而冻结)
原始代码:
Context
取消注释这些行:
if($('#map_canvas').length) {
//var lat = 53.8683;
//var lng = 0.5;
// instantiate geocoder
geocoder = new google.maps.Geocoder();
// create new latitude / longitude object
var latlng = new google.maps.LatLng(lat,lng);
// set map options
var myOptions = {
zoom: 5,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// display map
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// show the map div
$('#map_canvas').show();
}
然后它奏效了。奇怪的是,到目前为止,这些变量已被评论出来,它已经运作良好多年了。