初試HTML5地圖顯示

來源:互聯網
上載者:User

 

最近對HTML5發生了興趣。因為以前就是做導航監控的,對地圖這塊也懂一點。所以在學習的過程中希望將地圖元素融入HTML5中。也當是自己給自己的練習。

於是選擇了google Map API作為介面。然後地圖的顯示理所當然就應該是基於瀏覽器的,而現在大家使用的瀏覽器很多種多樣,於是我選用了IE 8.0,chrome 12,opera 11作為測試對象。

根據找到的資料,建立了一個html5檔案,源碼如下:

<!DOCTYPE html>

<header>

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

<title>testmap</title>

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"
/>

<script type="text/javascript">

function datainit()

{

   
navigator.geolocation.getCurrentPosition(function(position){

        var
coords=position.coords;

        //設定地圖參數,將使用者的當前位置的緯度、經度設定為地圖的中心點

        var
latlng=new
google.maps.LatLng(coords.latitude,coords.longitude);

        var
myOptions={

            zoom:14,

            center:latlng,

            mapTypeId:google.maps.MapTypeId.ROADMAP

        };

        //建立地圖並在“map“div中進行顯示

        var
map1;

        map1=new google.maps.Map(document.getElementById("map"),myOptions);

        //地圖上建立標記

        var
marker=new google.maps.Marker({

            position:latlng,

            map:map1

        });

        //設定標註視窗,並指定該視窗中的注釋文字

        var
infowindow=new google.maps.InfoWindow({

            content:"當前位置!"

        });

        //開啟標註視窗

       
infowindow.open(map1,marker);

    });

}

</script>

</header>

 

<body onload = "datainit();">

<div id="map" style="width:400px; height:400px"></div>

</body>

 

以上源碼在Opera中運行正常,我能夠看到想要的地圖。但是在IE和Chrome中都不能正常運行,提示找不到datainit()這個對象。感覺挺奇怪的,以前也沒碰到類似的情況啊。抱著僥倖的心理把datainit()函數搬到一個.js的檔案中,竟然奇蹟般的能在chrome瀏覽器中顯示地圖了(到現在還不是太明白,有誰瞭解的請指點一二),但在IE裡還是不行,這時候在IE裡報的錯誤是“navigator.geolocation 為空白或不是對象”(到目前也沒有解決)。

總結一下,跨平台,多瀏覽器的開發確實困難。需要考慮的東西太多了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.