Javascript 谷歌地图API:Mouseover只在一天中的某个特定时间工作

Javascript 谷歌地图API:Mouseover只在一天中的某个特定时间工作,javascript,google-maps,maps,Javascript,Google Maps,Maps,我必须说,这是我在编程冒险中遇到的最奇怪的错误。我真的不知道为什么会这样 基本上,我的应用程序必须从Mysql数据库接收一些数据,当用户在某个国家单击时,必须出现一个信息窗口,其中包含来自数据库的一些信息。DB通信工作正常,问题是:当我将鼠标放在一个国家上时,有时不调用mouseover事件,mouseout也是如此 但有时呢?频率是多少?这是最奇怪的部分:在一天中的特定时间。我是巴西人,我在这里使用UTC-3,如果我在18:00访问我的应用程序,它不起作用,但是如果我在早上7点访问它,它确实起

我必须说,这是我在编程冒险中遇到的最奇怪的错误。我真的不知道为什么会这样

基本上,我的应用程序必须从Mysql数据库接收一些数据,当用户在某个国家单击时,必须出现一个信息窗口,其中包含来自数据库的一些信息。DB通信工作正常,问题是:当我将鼠标放在一个国家上时,有时不调用mouseover事件,mouseout也是如此

但有时呢?频率是多少?这是最奇怪的部分:在一天中的特定时间。我是巴西人,我在这里使用UTC-3,如果我在18:00访问我的应用程序,它不起作用,但是如果我在早上7点访问它,它确实起作用

我真的不知道为什么会发生这种情况,试图在网上搜索,但什么也没找到

有人能帮我吗?这是我正在使用的代码js控制台中没有出现错误,错误发生在chrome、firefox、IE中

<script type="text/javascript" >
      var colors = ['#FF0000', '#00FF00', '#0000FF', '#FFFF00'];
      var map
      var infowindow;

      function initialize() {
        var myOptions = {
          zoom: 2,
          center: new google.maps.LatLng(10, 0),
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        map = new google.maps.Map(document.getElementById('map-canvas'),
            myOptions);

    geocoder = new google.maps.Geocoder();


        // Initialize JSONP request
        var script = document.createElement('script');
        var url = ['https://www.googleapis.com/fusiontables/v1/query?'];
        url.push('sql=');
        var query = 'SELECT name, kml_4326 FROM ' +
            '1foc3xO9DyfSIF6ofvN0kp2bxSfSeKog5FbdWdQ';
        var encodedQuery = encodeURIComponent(query);
        url.push(encodedQuery);
        url.push('&callback=drawMap');
        url.push('&key=AIzaSyAm9yWCV7JPCTHCJut8whOjARd7pwROFDQ');
        script.src = url.join('');
        var body = document.getElementsByTagName('body')[0];
        body.appendChild(script);
      }

      function drawMap(data) {
        var rows = data['rows'];
        for (var i in rows) {
          if (rows[i][0] != 'Antarctica') {
            var newCoordinates = [];
            var geometries = rows[i][1]['geometries'];
            if (geometries) {
              for (var j in geometries) {
                newCoordinates.push(constructNewCoordinates(geometries[j]));
              }
            } else {
              newCoordinates = constructNewCoordinates(rows[i][1]['geometry']);
            }
            //var randomnumber = Math.floor(Math.random() * 4);
            var country = new google.maps.Polygon({
              paths: newCoordinates,
              //strokeColor: colors[randomnumber],
              strokeOpacity: 0,
              strokeWeight: 1,
              //fillColor: colors[randomnumber],
              fillOpacity: 0
            });

        infowindow =  new google.maps.InfoWindow({
            content: ''
        });

            google.maps.event.addListener(country, 'mouseover', function() {
              alert("HIIIIII JOW");
              this.setOptions({fillOpacity: 0.3});
            });
            google.maps.event.addListener(country, 'mouseout', function() {
              this.setOptions({fillOpacity: 0});
            });
            google.maps.event.addListener(country, 'click', function(event) {
                var lat = event.latLng.lat();
                var lng = event.latLng.lng();

                initialize2(lat,lng);

            });
            country.setMap(map);
          }
        }
      }

      function constructNewCoordinates(polygon) {
        var newCoordinates = [];
        var coordinates = polygon['coordinates'][0];
        for (var i in coordinates) {
          newCoordinates.push(
              new google.maps.LatLng(coordinates[i][1], coordinates[i][0]));
        }
        return newCoordinates;
      }


      function initialize2(lat,lng){
        var url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat + "," + lng+ "&sensor=true&language=en";
        jQuery.getJSON(url, function (data) {

        for (var i = 0; i < data.results[0].address_components.length; i++){
            //var formatted = results[0].formatted_address;//.short_name
            var countryName
            var shortname = data.results[0].address_components[i].short_name;
            var longname = data.results[0].address_components[i].long_name;
            var type = data.results[0].address_components[i].types;
            if (type.indexOf("country") != -1){
                if (isNullOrWhitespace(shortname)){
                    countryName = shortname;
                }
                else{
                    countryName = longname;
                }
            }
        }
        var lat2;
        var lng2
        geocoder.geocode( {'address' : countryName}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                lat2 = results[0].geometry.location.lat();
                lng2 = results[0].geometry.location.lng();
                //alert(results[0].geometry.location);//map.setCenter(results[0].geometry.location);
                //alert(lat2+','+lng2);
                var array = <?php echo json_encode($arr); ?>;

                var str = 'Nenhuma exchange cadastrada neste país!';

                for(var i = 0;i<array.length;i++){

                    if(countryName==array[i][0]){
                        var string = 'country_volume.php?country=' + countryName;
                      str = '<center><strong>'+array[i][0]+'</strong></center>' +
                            '<strong>Número de Exchanges: </strong>' + array[i][1] + '</br>' +
                            '<strong>Volume: </strong>' + array[i][2] + '</br>' +
                            '<strong>Ranking Mundial: </strong> ' + array[i][3] + 'º' + '</br>' +
                            '<strong>Porcentagem Mundial (%): </strong> ' + array[i][4] + '%' + '</br>' +
                            '<a href='+string+'>' + 'Mais Informações' + '</a>';
                    }

                }

                if (infowindow) infowindow.close();
                infowindow =  new google.maps.InfoWindow({
                    content: str,
                    map: map,
                position: new google.maps.LatLng(lat2,lng2)
                });

            }
        });

        });
      }

    function isNullOrWhitespace(text) {
        if (text == null) {
            return true;
        }
        return text.replace(/\s/gi, '').length < 1;
    }


      google.maps.event.addDomListener(window, 'load', initialize);
    </script>

您可能超过Fusion Tables API的每日配额:

默认请求配额限制如下所示:

每个API项目每天25000个请求,其中读取计数为一个请求,写入计数为五个请求

每个表每分钟30次写入请求 您可以在GoogleAPI控制台的配额选项卡下请求更多配额

存储配额限制为:

每个表100 MB 所有表中总共有250 MB
有关更多详细信息,请参阅。

可能您从FusionTables API v1中收到错误,例如超出了每日限制。非常感谢,事实上,我使用的密钥来自示例编辑器,而不是我自己的lol