利用騰訊地圖API調用街景

1、首先搭建自己的web服務器(可以用IIS或Apache,或更輕量級的軟件)

我這裏使用了安可WEB服務器:


2、雙擊WEB服務器,設置網站路徑、端口,點擊啓動(這裏的IP是我在命令行輸入ipconfig的得到的)


3、在網站目錄D:\wwwroot下新建一文本文件,粘貼下面代碼,並保存文件名爲index.html

這裏需要注意的是:需要在頁面的前端使用script標籤加載API服務,格式如下:

<script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp&key=YOUR_KEY"></script>

其中,v參數是引用的版本號,目前騰訊地圖提供兩個版本,分別是v=1,v=2.exp,推薦使用2.exp,可以獲得最新最快的支持。key參數YOUR_KEY是key鑑權一節中申請的key。

JavaScript API除了提供基本的功能庫外,還提供了一些有用的附加庫。加載方法是將script標籤的src設置爲:

http://map.qq.com/api/js?v=2.exp&key=YOUR_KEY&libraries=drawing,geometry,autocomplete,convertor

其中libraries參數用來指明加載的附加庫,可以指定多個附加庫名稱,名稱之間用英文半角字符逗號","分隔。支持的附加庫種類:

  • drawing 繪圖工具庫,用於在地圖上方繪製折線、多邊形、圓等幾何圖形;
  • geometry 幾何運算庫,用於計算地球表面的距離、面積等;
  • autocomplete 文本輸入提示庫,用於快速幫助用戶完成檢索關鍵詞輸入;
  • convertor 座標轉換庫,將標準經緯度或其它地圖API經緯度轉換爲騰訊經緯度座標系。

關於附加庫的詳細接口,請參見參考手冊

加載API之後,就可以再Web頁面中引用相關的接口。另外,加載方式除以上介紹的,還支持異步加載,完整的示例請參考快速入門 。

  • Android 和 iOS 設備會應用以下 <meta> 標記:

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

此設置表示地圖以全屏模式顯示,不允許用戶調整地圖的大小。您需要在網頁的 <head> 元素中添加此 <meta> 標記

座標格式:

JavaScript API使用的座標格式是{緯度, 經度},即緯度在前,經度在後如果在使用API過程中,發現地圖無法顯示,請先查看座標格式是否正確。從其它幾家API切換過來的用戶尤其要注意這個區別。

地圖級別範圍:

JavaScript API使用的二維地圖和衛星影像圖,級別範圍都是[1,18]。街景縮放級別Zoom爲1-4,騰訊地圖API的地圖縮放級別爲 4-17


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>街景-Hello world</title><script type="text/javascript">var _speedMark = new Date();</script>
<script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp&key=d84d6d83e0e51e481e50454ccbe8986b"></script>
<script>
var init = function(){
    pano_container=document.getElementById('PanoCtn');  //街景容器
    pano = new qq.maps.Panorama(pano_container, {
        pano: '10011501120802180635300',    //場景ID
        pov:{   //視角
                heading:1,  //偏航角
                pitch:0     //俯仰角
            },
        zoom:1      //縮放
    })
}
</script>
</head>
<body οnlοad="init()">
    <div id="PanoCtn" style="width:500px;height:300px"></div>
<script type="text/javascript" src="http://tajs.qq.com/stats?sId=31153770" charset="UTF-8"></script></body>
</html>

申請開發密鑰(key)

使用街景api時,開發者必須先 [申請密鑰] ,街景API對於 無key 或 錯key 的情況,會受到一定程度的限制,爲了保證您的正常及穩定的使用,請一定注意確保無誤。

對於密鑰的申請沒有任何限制,您只需非常簡單的幾個步驟即可獲得。

在引用api時設置key:

<script src="http://map.qq.com/api/js?v=2.exp&key=d84d6d83e0e51e481e50454ccbe8986b">


4、在WEB服務器點擊“打開網頁”,可觀看效果


這裏出現亂碼是因爲文本的content-type告訴瀏覽器用UTF-8,而記事本默認爲ANSI格式,所以需要用記事本打開index.html,然後另存爲進行保存,保存格式選擇UTF-8,重新打開。


亂碼問題點擊打開鏈接

    1.  html文件是有編碼格式的,這個在特定的編輯器中才能看出來,並進行設置。

    2.  html文件中頭部的"content-type"中設置的"charset"是告訴瀏覽器打開該文件的編碼方式。

    3.  一般1、2點中的編碼方式應該一致,不一致可能出現亂碼。

    4.  如果瀏覽器中顯示亂碼,但是頁面源文件不是亂碼,可以通過修改瀏覽器的編碼方式看到正確的中文,如果在源文件中設置了正確的"charset",就不需要修改瀏覽器的編碼方式了。


5、概念及基本使用方法點擊打開鏈接

場景(pano):

一個360度的全景即爲一個場景(街景是由無數個場景組成的),每一個場景都有自己的一個唯一標識,我們稱爲“PanoId”

視角(pov):point of view

偏航角(heading):與正北方向的夾角,順時針一週爲360度

俯仰角(pitch):簡單的說就是擡頭或低頭的角度,水平爲0度,低頭爲0至90度,擡頭爲0至-90度,

縮放(zoom):分爲1至4級,像望遠鏡一樣,4級放得最大,看得最遠

吸附:

通過某點經緯度獲取指定半徑內其最近街景場景信息(包括panoId、場景所在座標等)。

API爲:qq.maps.PanoramaService.getPano(position:LatLng, radius:Number, callback:Function) [使用示例]

下圖示意:給定A點座標,範圍100米,取最近街景場景信息,正好是B點,獲取到B點的街景信息後,就可以通過API顯示出街景了!

小貼士:怎麼讓B點的街景視線朝向A?

吸附得到的B點場景信息中,包含着B點的座標,通過兩點的座標運算,可計算出B點面向A點的heading,是不是感覺很難?沒關係,點下邊的示例,把代碼拷走就行了![查看算法及示例]

街景圖層(藍色高亮路網):

顯示街景道路覆蓋範圍的地圖疊加層:

API爲:qq.maps.PanoramaLayer() [使用示例]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章