谷歌地图显示为灰色框

时间:2012-04-17 22:34:07

标签: google-maps google-maps-api-3

我正在为drupal网站开发此应用程序。使用api网站上的示例,我得到了地图,可以使用固定在其中的javascript的硬连线html。但我真的需要使用ajax,而具有相同数据的ajax函数只显示灰色框。

使用alert()我已经确认数据是通过ajax调用正确进入函数的,就像地图中心和缩放一样。一个关键的区别是,根据谷歌的例子,硬连线的html在标签中使用了onload =“fcn()”,但我似乎需要使用jquery“jQuery(document).ready(function(){”in my。 js文件而不是没有定义函数。当我尝试使用该函数时,它从未被触发。这段代码是否需要使用函数?不可否认我没有很多javascript经验。这是我的js。第一行的数据有一些参数,第二个是纬度,第三个是经度,最后一个是标记标题。

PS - 不知道为什么我不能得到最后一组});在代码框中显示。

jQuery(document).ready(function() {

    jQuery.get('http://www.example/get_customer_geo', function(result) {

      var rows = result.split(';');
      var parms = rows[0].split(',');
      var midlat = parseFloat(parms[0]);
      var midlon = parseFloat(parms[1]);
      var LatlngCtr = new google.maps.LatLng(midlat,midlon);
      var zoomval = parms[2];
      var latitude = rows[1].split(',');
      var longitude = rows[2].split(',');
      var titles = rows[3].split(',');
      var myLatlng = new Array();
      var marker = new Array();

      for (i=0; i<latitude.length; i++)
      {
          myLatlng[i] = new google.maps.LatLng(parseFloat(latitude[i]),parseFloat(longitude[i]));
      }

      var myOptions = {
          zoom: zoomval,
          center: LatlngCtr,
          mapTypeId: google.maps.MapTypeId.ROADMAP
      }
      var map = new google.maps.Map(document.getElementById("map_terr"), myOptions);

      for (i=0; i<latitude.length; i++)
      {
          marker[i] = new google.maps.Marker({
            position: myLatlng[i],
            map: map,
            title: titles[i]
          });

      }
    });
  });

2 个答案:

答案 0 :(得分:1)

我也无法使用<Body onload=“initialize()”>。我离开了股票function initialize (),只是添加了这个监听器作为我的地图脚本的最后一部分google.maps.event.addDomListener(window, "load", initialize);

答案 1 :(得分:0)

我通过确保定义地图的坐标来解决同样的问题。我的地图以灰色显示的原因是浏览器没有提供地理位置信息。我为lat和long设置了默认值,现在会显示地图。