谷歌映射v3 API错误

时间:2018-02-17 16:41:07

标签: google-maps

我在我的某个网站上使用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 

知道为什么会这样吗?

4 个答案:

答案 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();
}

然后它奏效了。奇怪的是,到目前为止,这些变量已被评论出来,它已经运作良好多年了。