整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTML5實現的迷宮地圖隨機生成器

          多小朋友喜歡用筆在紙上畫線進行走迷宮游戲。

          比如下圖這種迷宮:從標注了S(Start-起點)的位置出發,走到終點E(End)就算成功。

          那么,如何隨機生成上圖這種迷宮地圖呢?

          我在github上部署了一個迷宮地圖生成應用:http://i042416.github.io/FioriODataTestTool2014/WebContent/027_generator.html

          每次進入這個應用或者按F5刷新,就會隨機生成一張新的迷宮地圖:

          這個應用僅僅需要使用到兩個JavaScript腳本文件和一個html文件。

          html文件的源代碼:

          <!doctype html>

          <html>

          <head>

          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

          <meta http-equiv="Pragma" content="no-cache" />

          <meta http-equiv="Expires" content="-1" />

          <meta http-equiv="Cache-Control" content="no-cache" />

          <meta charset="utf-8">

          <title>Maze Demo</title>

          <!-- <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no, target-densitydpi=device-dpi" /> -->

          <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />

          <meta name="apple-mobile-web-app-title" content="H5Game">

          <meta name="apple-touch-fullscreen" content="yes" >

          <meta name="apple-mobile-web-app-capable" content="yes">

          <meta name="apple-mobile-web-app-status-bar-style" content="black">

          <meta name='format-detection' content='telephone=no'>

          <meta name="screen-orientation" content="portrait">

          <meta name="full-screen" content="yes">

          <meta name="x5-fullscreen" content="true">

          <meta name="360-fullscreen" content="true">

          <script type="text/javascript" src="maze//Maze.js"></script>

          <script type="text/javascript" src="maze/main.js"></script>

          <script type="text/javascript">

          </script>

          <style>

          #toolbar {

          position: absolute;

          padding:2px;

          top:0;

          right:0;

          width:180px;

          }

          #toolbar button {

          padding:10px;

          font-size:16px;

          margin:5px;

          }

          </style>

          </head>

          <body>

          <div id="container" class="splash">

          <canvas id="canvas"></canvas>

          <div id="info"></div>

          </div>

          </body>

          </html>

          迷宮的輪廓模型生成邏輯位于代碼Maze.js里:

          "use strict";

          var Maze = function(options) {

          for (var p in options) {

          this[p] = options[p];

          }

          }

          先看效果,再看源碼~

          地圖:矢量底圖、衛星底圖、路況底圖

          <!DOCTYPE html>
          <html lang="en">
          
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <meta http-equiv="X-UA-Compatible" content="ie=edge">
              <title>創建地圖</title>
              <style type="text/css">
                  html, body {
                      height: 100%;
                      margin: 0px;
                      padding: 0px;
                  }
                  #container {
                      width: 800px;
                      height: 600px;
                  }
              </style>
          </head>
          <script charset="utf-8" src="https://wemapvis.map.qq.com/api/gljs?v=1.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>
          <body onload="initMap()">
              <div id="container"></div>
              <script type="text/javascript">
                  function initMap() {
                      //初始化地圖
                      var map = new TMap.Map("container", {
                          // 設置地圖縮放級別
                          zoom: 11, 
                          rotation: 353,
                          pitch: 73,
                          // 地圖底圖,BaseMap目前只支持矢量底圖 (VectorBaseMap) 、衛星底圖 (SatelliteBaseMap) 、路況底圖 (TrafficBaseMap) 
                          // 可以使用數組形式實現多種底圖疊加
                          // 默認為 VectorBaseMap ,
                          baseMap:{
                              //type: "vector"
                              type: "satellite"
                              //type: "traffic"
                          },
                          // 3D / 2D 顯示模式控制
                          viewMode:'2D',
                          //設置地圖中心點坐標
                          center: new TMap.LatLng(37.87, 112.53),
                          adcode: 110101   //  市區縣級行政區劃代碼
                      });
                  }
              </script>
          </body>
          
          </html>

          單擊事件獲取經緯度

          <!DOCTYPE html>
          <html lang="en">
          
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <meta http-equiv="X-UA-Compatible" content="ie=edge">
              <title>單擊事件獲取經緯度</title>
              <style type="text/css">
                  html, body {
                      height: 100%;
                      margin: 0px;
                      padding: 0px;
                  }
                  #container {
                      width: 800px;
                      height: 600px;
                  }
              </style>
          </head>
          <script charset="utf-8" src="https://wemapvis.map.qq.com/api/gljs?v=1.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>
          <body onload="initMap()">
              <div id="container"></div>
              <script type="text/javascript">
                  function initMap() {
                      //初始化地圖
                      var map = new TMap.Map("container", {
                          // 設置地圖縮放級別
                          zoom: 11, 
                          rotation: 353,
                          pitch: 73,
                          baseMap:{
                              //type: "vector"
                              type: "satellite"
                              //type: "traffic"
                          },
                          // 3D / 2D 顯示模式控制
                          viewMode:'2D',
                          //設置地圖中心點坐標
                          center: new TMap.LatLng(37.87, 112.53),
                          adcode: 110101   //  市區縣級行政區劃代碼
                      });
                      //初始化marker
                      var marker = new TMap.MultiMarker({
                          map: map,
                          styles: {
                          // 點標記樣式
                          marker: new TMap.MarkerStyle({
                              width: 20, // 樣式寬
                              height: 30, // 樣式高
                              anchor: { x: 10, y: 30 }, // 描點位置
                              src: 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerDefault.png', // 標記路徑
                          }),
                          },
                          geometries: [
                              // 點標記數據數組
                              {
                                  // 標記位置(經度,緯度,高度)
                                  position: new TMap.LatLng(37.87, 112.53, 134),
                              },
                          ],
                      });
          
                      //綁定點擊事件
                      map.on("click",function(evt){
                          var lat = evt.latLng.getLat().toFixed(6);
                          var lng = evt.latLng.getLng().toFixed(6);
                          console.log(lat + "," + lng);
                      })
                  }
              </script>
          </body>
          
          </html>

          Marker軌跡回放

          慧景區AR導覽手繪地圖小程序系統開發源碼搭建需要以下步驟:

          1. 確定系統需求和功能:了解智慧景區AR導覽手繪地圖小程序系統的需求和功能,包括地圖繪制、AR導覽、用戶交互、數據管理等。

          2. 選擇開發平臺和工具:選擇適合的編程語言、開發框架、數據庫和云服務提供商等,搭建開發環境。

          3. 設計系統架構:根據需求和功能設計系統架構,包括數據庫設計、系統模塊劃分、接口設計等。

          4. 開發前端界面:使用HTML、CSS、JavaScript等前端技術,開發手繪地圖和小程序界面,實現地圖繪制、AR導覽等功能。

          5. 開發后端接口:使用后端編程語言和框架,開發與前端界面的交互接口,處理用戶請求、管理數據等。

          6. 集成AR技術:集成AR技術實現真實世界與虛擬元素的互動,為游客提供更好的導覽體驗。

          7. 測試系統:對搭建完成的系統進行全面測試,確保系統的穩定性和功能性,解決測試過程中出現的問題。

          8. 上線運營:完成測試后,將系統部署到云服務器上,進行上線運營,收集用戶反饋并進行優化。

          需要注意的是,智慧景區AR導覽手繪地圖小程序系統開發需要一定的技術能力和經驗,建議選擇專業的開發團隊或公司進行開發。同時,需要考慮到系統的安全性和數據保護,確保系統的穩定性和可靠性。

          (此處已添加小程序,請到客戶端查看)

          主站蜘蛛池模板: 一区二区三区免费视频观看 | 91福利一区二区| 国产伦精品一区二区三区精品| 在线精品亚洲一区二区小说| 美女视频在线一区二区三区| 色窝窝无码一区二区三区成人网站 | 久久久久人妻一区精品| 亚洲啪啪综合AV一区| 精品无码一区二区三区爱欲 | 色一情一乱一伦一区二区三区日本 | 成人精品视频一区二区三区| 无码精品国产一区二区三区免费| 一区二区三区视频| 日韩精品人妻av一区二区三区| 亚洲日韩精品一区二区三区无码| 亚洲Av无码一区二区二三区| 日本v片免费一区二区三区| 奇米精品一区二区三区在| 中文字幕AV一区二区三区| 一区二区三区四区在线观看视频 | 一区二区在线播放视频| 国产成人一区二区三区在线观看| 九九无码人妻一区二区三区| 亚洲AⅤ视频一区二区三区| 精品无码一区二区三区爱欲九九| 日韩精品无码人妻一区二区三区| 91午夜精品亚洲一区二区三区| 老湿机一区午夜精品免费福利| 老熟妇仑乱视频一区二区| 日韩一区二区三区视频久久| 亚洲av鲁丝一区二区三区| 四虎在线观看一区二区| 一区二区三区视频在线观看| 无码日韩人妻AV一区二区三区| 精品国产一区二区三区四区| 色婷婷AV一区二区三区浪潮 | 日韩在线视频一区二区三区| 熟女精品视频一区二区三区| 高清一区二区三区| 久久精品无码一区二区三区不卡| 日韩精品在线一区二区|