无法让这张谷歌地图发挥作用

时间:2015-06-21 02:15:33

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

页面上显示的唯一内容是米色背景,平移箭头和放大/缩小栏,但没有别的

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">
      html, body,
      #map-canvas {
         height: 100%;
         margin: 0;
         padding: 0;
      }
    </style>
  <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC3lKBNm9jCGbUP8SH9j96S6AmUIRA2dPk">
  </script>
  <script type = "text/javascript" >

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
      }
    else
    {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.open("GET","http://website.com/bustime/api/v1/getstops?key=555555&rt=CS&dir=Circ",false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;

    var latitude = xmlDoc.getElementsByTagName("lat")[0].childNodes[0].nodeValue;
    var longitude = xmlDoc.getElementsByTagName("lon")[0].childNodes[0].nodeValue;

    function initialize(latitude, longitude) {

      var myLatlng = new google.maps.LatLng(latitude,longitude);
      var mapOptions = {
       zoom: 15,
       center: myLatlng
       }
       var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

       var marker = new google.maps.Marker({
         position: myLatlng,
           map: map,

       });
     }

   google.maps.event.addDomListener(window, 'load', function () {
   initialize(latitude, longitude);
});
 </script>
  </head>
  <body onLoad ="initialize(longitude, latitude)">
<div id="map-canvas"></div>
  </body>
</html>

XML如下:

<bustime-response>
   <stop>
     <stpid>305</stpid>
     <stpnm>12TH</stpnm>
     <lat>33.996838209471</lat>
     <lon>-56.008665</lon>
   </stop>
</bustime-response>

我对这里的xml解析感到茫然,并且不知道我可能缺少什么。根据我正在使用的API文档&#34; API是一个使用HTTP / 1.1的Web服务。

如果我直接输入lat / long的数字,地图就可以工作,但是否则它不会

编辑:按Ctrl + shift + J后我得到的错误是:

Uncaught NetworkError:无法执行&#39;发送&#39; on&#39; XMLHttpRequest&#39;:无法加载&#39; http://trip.osu.edu/bustime/api/v1/getstops?key=Uw7ayuTAmaPDWnECG3khBLYd2&rt=CLS&dir=Circular&#39;。(匿名函数)@ map2.html:27

http://trip.osu.edu/bustime/api/v1/getstops?key=Uw7ayuTAmaPDWnECG3khBLYd2&rt=CLS&dir=Circular。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; null&#39;因此不允许访问。

我改变了:

xmlhttp.open("GET","http://trip.osu.edu/bustime/api/v1/getstops?key=Uw7ayuTAmaPDWnECG3khBLYd2&rt=CLS&dir=Circular",true);

2 个答案:

答案 0 :(得分:1)

我相信你的问题是你要两次初始化地图。使用google.maps.event.addDomListener并使用正文onLoad ="initialize(longitude, latitude)"

所以,基本上,你的地图加载在没有正确加载的空白图层下面。

为避免竞争条件而采取的推荐方法是google.maps.event.addDomListener ...当我移除onLoad ="initialize(longitude, latitude)"时,它适用于我。

答案 1 :(得分:0)

您正在尝试获取文件:

xmlhttp.open("GET","http://website.com/bustime/api/v1/getstops?key=555555&rt=CS&dir=Circ",false);

回复http errore 301 Moved Permanently