iOS谷歌地圖全景顯示

我通過(guò)在Xcode中使用一個(gè)html文件進(jìn)行展示我發(fā)現(xiàn)將很多圖片進(jìn)行循環(huán)可以展示出3D全景效果接下來(lái)我們深入研究一下如何使用html和JS代碼將全景地圖效果展示出來(lái)
1.我們需要在Xcode中創(chuàng)建一個(gè)html文件
//寫(xiě)入<!DOCTYPE html>這句代碼使用來(lái)聲明html文件的
2.<html> </html>
<head> </head>
<meta charset=utf-8">
這三句代碼就是html文件的標(biāo)簽元素跟我理解的xml文件標(biāo)簽元素是一樣的
注意:<title>Full 360 degree View</title>這句代碼設(shè)置html文件在預(yù)覽器中的標(biāo)題
3.接下來(lái)我們需要深一步了解JS代碼
首先我們創(chuàng)建JS標(biāo)簽<script></script> 然后我們將在標(biāo)簽中寫(xiě)入JS用來(lái)展示全景效果圖此處注意所有JS標(biāo)簽全部被html標(biāo)簽所包含所有JS代碼全部被JS標(biāo)簽包含(包含也就是放到標(biāo)簽里面去)
var ctx = null; // 顯示證書(shū)全局變量2 d上下文
var frame = 1; // 設(shè)置位置信息
var width = 0;//寬度
var height = 0;//高度
var started = false;//判斷是否開(kāi)始
var images = new Array();//設(shè)置圖片數(shù)組
var startedX = -1;
//設(shè)置函數(shù)體
window.onload = function() {
var canvas = document.getElementById("fullview_canvas");
canvas.width = 440;//寬度/帆;
canvas.height = 691;//高度/帆;
width = canvas.width;//設(shè)置寬度帆
height = canvas.height;//設(shè)置高度帆
//等到元素loadProgressBar
var bar = document.getElementById('loadProgressBar');
//循環(huán)圖片數(shù)組images
for(var i=1; i<24; i++)
{
bar.value = i;
if(i<10)
{
images[i] = new Image();
images[i].src = "0" + i + ".jpg";
}
else
{
images[i] = new Image();
images[i].src = i + ".jpg";
}

        ctx = canvas.getContext("2d");//獲得2d證書(shū)內(nèi)容
        
        // 通過(guò)鼠標(biāo)滑動(dòng)網(wǎng)頁(yè)進(jìn)行滾動(dòng)圖片操作(必須在圖片開(kāi)啟滾動(dòng)的情況)
        canvas.addEventListener("mousedown", doMouseDown, false);
        canvas.addEventListener('mousemove', doMouseMove, false);
        canvas.addEventListener('mouseup',   doMouseUp, false);
        // loaded();
        // frame = 1
        frame = 1;
        images[frame].onload = function() {
        redraw();
        bar.style.display = 'none';
        }
        }
        function doMouseDown(event) {
        var x = event.pageX;
        var y = event.pageY;
        var canvas = event.target;
        var loc = getPointOnCanvas(canvas, x, y);
        console.log("mouse down at point( x:" + loc.x + ", y:" + loc.y + ")");
        startedX = loc.x;
        started = true;
        }
        
        function doMouseMove(event) {
        var x = event.pageX;
        var y = event.pageY;
        var canvas = event.target;
        var loc = getPointOnCanvas(canvas, x, y);
        if (started) {
        var count = Math.floor(Math.abs((startedX - loc.x)/30));
        var frameIndex = Math.floor((startedX - loc.x)/30);
        while(count > 0)
        {
        console.log("frameIndex = " + frameIndex);
        count--;
        if(frameIndex > 0)
        {
        frameIndex--;
        frame++;
        } else if(frameIndex < 0)
        {
        frameIndex++;
        frame--;
        }
        else if(frameIndex == 0)
        {
        break;
        }
        
        if(frame >= 24)
        {
        frame = 1;
        }
        if(frame <= 0)
        {
        frame = 23;
        }
        redraw();
        }
        }
        }
        
        function doMouseUp(event) {
        console.log("mouse up now");
        if (started) {
        doMouseMove(event);
        startedX = -1;
        started = false;
        }
        }
        
        function getPointOnCanvas(canvas, x, y) {
        var bbox = canvas.getBoundingClientRect();
        return { x: x - bbox.left * (canvas.width  / bbox.width),
        y: y - bbox.top  * (canvas.height / bbox.height)
        };
        }
        
        function loaded() {
        setTimeout( update, 1000/8);
        }
        function redraw()
        {
        // var imageObj = document.createElement("img");
        // var imageObj = new Image();
        var imageObj = images[frame];
        ctx.clearRect(0, 0, width, height)
        ctx.drawImage(imageObj, 0, 0, width, height);
        }
        function update() {
        redraw();
        frame++;
        if (frame >= 23) frame = 1;
        setTimeout( update, 1000/8);
        }
       </head>
        <body>
       //設(shè)置標(biāo)簽元素進(jìn)度條最大值為23
        <progress id="loadProgressBar" value="0" max="23"></progress> 
        //設(shè)置函數(shù)標(biāo)簽元素
        <canvas id="fullview_canvas"></canvas>
       //設(shè)置按鈕點(diǎn)擊函數(shù)體和按鈕標(biāo)題
        <button onclick="loaded()">Auto Play</button>
        </body>
        </html>

4.我們已經(jīng)了解如何生成html文件接下來(lái)我們可以在工程中通過(guò)OC代碼與html文件和JS代碼進(jìn)行交互使用顯示全景效果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姆钉,一起剝皮案震驚了整個(gè)濱河市室囊,隨后出現(xiàn)的幾起案子英岭,更是在濱河造成了極大的恐慌土居,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)堂污,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)龄砰,“玉大人盟猖,你說(shuō)我怎么就攤上這事』慌铮” “怎么了式镐?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)固蚤。 經(jīng)常有香客問(wèn)我碟案,道長(zhǎng),這世上最難降的妖魔是什么颇蜡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任价说,我火速辦了婚禮,結(jié)果婚禮上风秤,老公的妹妹穿的比我還像新娘鳖目。我一直安慰自己,他們只是感情好缤弦,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布领迈。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狸捅。 梳的紋絲不亂的頭發(fā)上衷蜓,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音尘喝,去河邊找鬼磁浇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛朽褪,可吹牛的內(nèi)容都是我干的置吓。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼缔赠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼衍锚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起嗤堰,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤戴质,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后踢匣,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體置森,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年符糊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呛凶。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡男娄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漾稀,到底是詐尸還是另有隱情模闲,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布崭捍,位于F島的核電站尸折,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏殷蛇。R本人自食惡果不足惜实夹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粒梦。 院中可真熱鬧亮航,春花似錦、人聲如沸匀们。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至重抖,卻和暖如春露氮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钟沛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工畔规, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讹剔。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓油讯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親延欠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陌兑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 《ijs》速成開(kāi)發(fā)手冊(cè)3.0 官方用戶交流:iApp開(kāi)發(fā)交流(1) 239547050iApp開(kāi)發(fā)交流(2) 10...
    葉染柒丶閱讀 5,092評(píng)論 0 7
  • 常見(jiàn)試題 行內(nèi)元素:會(huì)在水平方向排列,不能包含塊級(jí)元素由捎,設(shè)置width無(wú)效兔综,height無(wú)效(可以設(shè)置line-h...
    他大舅啊閱讀 2,432評(píng)論 1 5
  • 前端開(kāi)發(fā)面試知識(shí)點(diǎn)大綱: HTML&CSS: 對(duì)Web標(biāo)準(zhǔn)的理解、瀏覽器內(nèi)核差異狞玛、兼容性软驰、hack、CSS基本功:...
    秀才JaneBook閱讀 2,341評(píng)論 0 25
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程心肪,因...
    小菜c閱讀 6,365評(píng)論 0 17
  • 一直都沒(méi)有意識(shí)到事情的嚴(yán)重性硬鞍,也就一直稀里糊涂的跟著他的腳步走慧瘤,以至于突然他斷了我的一切聯(lián)系方式后,完全蒙圈了...
    喬木雅望閱讀 278評(píng)論 0 2