首頁  >  文章  >  web前端  >  Google地圖打不開的解決方法_javascript技巧

Google地圖打不開的解決方法_javascript技巧

WBOY
WBOY原創
2016-05-16 16:40:121973瀏覽

Google地圖被中國防火牆封鎖,所以不用直接引用http://maps.googleapis.com/maps/api/js?sensor=false&language=en這網域下的Google地圖api,而是改為http:/ /maps.google.cn/maps/api/js?sensor=false這個位址,google.cn在國內的網域沒有被封殺,可以使用。

注意:google.cn雖然可以使用,但是會輸出部分js引用到google.com的資源,導致地圖呈現會延時,所以不要將谷歌地圖api放到你的內容前面,如head標籤裡面,而是放到內容或html結束標籤最後,防止你的頁面內容一直是空白,瀏覽器無法顯示內容。

也不要用window.onload事件來繪製,要不穀歌地圖顯示不及時,因為要載入google.com的資源,而google.com資源被攔截,會導致知道請求超時(大概2分鐘)才會繪製出谷歌地圖。

使用Google的回呼參數來傳遞一個回呼函數名稱,測試這樣比使用window.onload事件快呈現出Google地圖。

範例程式碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>网站引用谷歌地图打不开解决办法:使用google.cn</title>
</head>

<body>

<div id="map_canvas" class="map" style="height: 350px;width: 500px;"></div></body>
<script type="text/javascript" src="http://maps.google.cn/maps/api/js&#63;sensor=false&callback=renderGoogleMap"></script>
<script type="text/javascript">
  function renderGoogleMap() {
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ 'address': '广西桂林市中心广场' }, function (results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }
    });
    var mapOptions = {
      zoom: 17,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
  }
</script>

</body>
</html>

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn