1. 程式人生 > >最課程階段大作業05:汙水處理系統以及百度地圖

最課程階段大作業05:汙水處理系統以及百度地圖

吃著火鍋唱著歌,我們的課程已經進行了兩個月了,現在,我們終於有能力進行真正的軟體開發了。

往期學完課程面試歸來的同學,都知道有一句話:“面試造航母,實際工作擰螺絲釘”。

很慶幸的是,到目前為止,你已經掌握了大部分擰螺絲釘需要的知識了,這些知識就是:JavaSE+HTML+CSS+JavaScript+JQuery+EasyUI+MySQL。十多年前,我們70後就是用這樣的技術開發了一個又一個專案,而現在你們90後,要比我們苦逼一點,後面還有各種框架和分散式的知識要學習。但是,不管怎麼樣,現有的知識已經滿足了我們做一個稍微正式一點、大型一點的專案了,那麼,今天我們就來做這樣一個專案:**智慧水務雲平臺。

以下的部分內容描述,我將摘自真正的專案需求書。

一:專案概述

在實際的工作中,我們無論是在售前方案書,還是需求設計書中,總能看到“專案概述”,這一般是對專案的整體描述。本專案的專案概述長成這樣:

二:平臺設計原則

在實際的設計或者需求說明書中,往往還存在著一些正確的廢話,比如“設計原則”。這些正確的廢話,少了還不行,這是非技術領導們最喜歡看的。那麼,滿足他們,寫的越好看越好:

三:體系架構

體系架構,用於描述系統的部署場景,一般適用於圖示。可複雜、可簡單。它用於指導開發人員,開發出來的軟體執行在哪裡,通訊協議用的是什麼等。以本專案為例,其體系架構描述成這樣:

四:需求設計

從這部分開始,是真正到了我們開發人員需要細看的地方了。以下不再特別框出來。

平臺功能模組分為站點監控、執行報表、警報和站點管理、個人中心及許可權認證模組,總體體系結構圖如下:

本次,我們迭代開發(一次迭代在時間上一般指一週到一個月)我們實現的功能是:站點監控、站點維護、地圖模組。

1.站點維護

2.站點監控之執行監控

3.站點監控之執行監控之迴流泵設定

4.地圖模組

五:百度地圖API

關於地圖的顯示,初學者可能會覺得非常的神祕。其實事情遠比你想象的簡單。

我們都知道,js能建立html元素,所以,我們無非做的就是呼叫百度的一個js檔案,然後輸入一些引數,百度的js就會幫我們在自己的網頁上建立地圖。

來看一個完整的例子吧:

<!doctype html>
<html>
<head>
<meta charset="u">
<title>示例</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=u5CNodaA3rFoWqcKcEhlpfDz"></script>
</head>

<body>
<div class="map">
    <div style="width:1100px;height:400px" id="map"></div>
</div>
<script type="text/javascript">
    function initMap() {
        createMap();    //初始化地圖
        addMapControl();//載入地圖控制元件,非必須
        addMapOverlay();//向地圖新增覆蓋物
    }
    
    function createMap() {
        map = new BMap.Map("map");       
        //設定地圖中心點經度、緯度、縮放比例
        map.centerAndZoom(new BMap.Point(121.491,31.233), 16);
        map.enableScrollWheelZoom();
        map.enableKeyboard();
        map.enableDragging();
        map.enableDoubleClickZoom()
    }
    function addClickHandler(target, window) {
        target.addEventListener("click", function () {
            target.openInfoWindow(window);
        });
    }
    function addMapOverlay() {
        var markers = [
          { content: "備註", title: "我在這裡", imageOffset: { width: 0, height: 3 }, position: { lat: 31.237 , lng:121.491 } }, // 緯度  經度
          { content: "備註", title: "TMD你在這裡", imageOffset: { width: 0, height: 3 }, position: { lat: 31.234 , lng:121.493 } }  // 緯度  經度
        ];
        for (var index = 0; index < markers.length; index++) {
            var point = new BMap.Point(markers[index].position.lng, markers[index].position.lat);
            var marker = new BMap.Marker(point, {
                icon: new BMap.Icon("http://api.map.baidu.com/lbsapi/createmap/images/icon.png", new BMap.Size(20, 25), {
                    imageOffset: new BMap.Size(markers[index].imageOffset.width, markers[index].imageOffset.height)
                })
            });
            var label = new BMap.Label(markers[index].title, { offset: new BMap.Size(25, 5) });
            var opts = {
                width: 200,
                title: markers[index].title,
                enableMessage: false
            };
            var infoWindow = new BMap.InfoWindow(markers[index].content, opts);
            marker.setLabel(label);
            addClickHandler(marker, infoWindow);
            map.addOverlay(marker);
        };
        var labels = [
        ];
        for (var index = 0; index < labels.length; index++) {
            var opt = { position: new BMap.Point(labels[index].position.lng, labels[index].position.lat) };
            var label = new BMap.Label(labels[index].content, opt);
            map.addOverlay(label);
        };
    }
    
    function addMapControl() {
        var scaleControl = new BMap.ScaleControl({ anchor: BMAP_ANCHOR_BOTTOM_LEFT });
        scaleControl.setUnit(BMAP_UNIT_IMPERIAL);
        map.addControl(scaleControl);
        var navControl = new BMap.NavigationControl({ anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_LARGE });
        map.addControl(navControl);
        var overviewControl = new BMap.OverviewMapControl({ anchor: BMAP_ANCHOR_BOTTOM_RIGHT, isOpen: true });
        map.addControl(overviewControl);
    }
    var map;
    initMap();
</script>

</body>
</html>

這是一個標準的示例。執行它,我們會看到:

假設我們需要做的就是將地點在地圖上顯示出來,那麼,我們唯一需要做的就是改這幾個地方:

1:你的開發者標識

這個開發者標識要去百度地圖申請,地址在這裡:http://lbsyun.baidu.com/。當然你也可以用我的。

2:設定地圖中心點:

3:設定我們要顯示的點:

然後,一切交給百度地圖就行了。

六:視訊監控

有了上面的百度地圖的知識,視訊監控還神祕嗎?道理都是一樣一樣滴。

視訊監控並不需要大家去實現,但是還是決定給大家講講原理。

如果我們要在網頁上看到視訊監控的畫面,那麼我們首先得去購買一套視訊監控的裝置。而我們在買視訊監控裝置的同時,廠商會給我們一套開發包,這個開發包中一般都會有DEMO什麼的。我們根據demo,在網頁中嵌入開發包中的一個控制元件後或嵌入一段js,設定好攝像頭的IP地址,就可以實現監控了。

樣例程式碼如下:

怎麼樣,是不是神祕感破除?這個時候,如果裝置線上,你就會在網頁中看到攝像頭中的一切哦,如下:

真是綠油油的一片草啊~~

七:作業要求

華麗分割線

===========================================================

看看吧。你想參加不一樣的培訓班,並且一畢業就NB,那就來加入我們吧;

更多技術文章和開班資訊請加入,

QQ群:

相關推薦

課程階段作業05汙水處理系統以及地圖

吃著火鍋唱著歌,我們的課程已經進行了兩個月了,現在,我們終於有能力進行真正的軟體開發了。 往期學完課程面試歸來的同學,都知道有一句話:“面試造航母,實際工作擰螺絲釘”。 很慶幸的是,到目前為止,你已經掌握了大部分擰螺絲釘需要的知識了,這些知識就是:JavaSE+HTML+CSS+JavaScript+JQ

課程階段作業06U節能平臺控制系統

除了網際網路專案,當今社會還有一個概念非常流行,那就是:物聯網。什麼是物聯網?物聯網是通過感測裝置,按約定的協議,把任意物品與網際網路相連線,進行資訊交換和通訊,以實現智慧化識別、定位、跟蹤、監控和管理的一種網路概念。物聯網是網際網路的一種延伸,將原本使用者與使用者的互動,延伸和擴充套件到物品與物品之間。

課程階段作業04毫無用處的學生管理系統

前面幾期就業班學生知道,我在做簡歷指導時說過:如果你的簡歷中專案經歷寫的是“學生管理系統”、“**辦公自動化”這樣的系統,那麼就等於告訴面試官:你沒有專案經驗。 對於面試找工作,學生管理系統這樣的專案簡直毫無用處,甚至是減分項。如果你一定要說你實現了一個NB的學生管理系統,那麼就需要拿出你在GITHUB上的

課程階段作業03用半天實現淘寶首頁?

       每一個在最課程學習的學生,到了最後幾乎都會來問我一個問題:老師,是不是實際的開發中,都會有一個前端開發工程師,把靜態頁面做好了,然後才交給我們後臺開發啊?        我只能說:你想多了。        我知道你這麼問的意思,HTML+CSS+各類前端框架學習起來太繁瑣了,是不是就沒有

課程階段作業02實現自己的利息計算器

       上文描述了版本控制後,此篇才真正到了作業本身。我們第一次大作業要完成的是一個利息計算器。        利息計算器或者說融資計算器有自己的圖形化版本,每一個學習的同學如果想要直觀的瞭解下功能,可以管自己的老師要或者加文末的QQ群向老師索取。不過我們今天要實現的是非圖形化的介面,是CS版本的,簡

課程階段作業之01使用SVN實現版本控制

       版本控制在友軍那裡都是放在整個培訓的最後階段才開始講的,但我們打算放到SE階段。與其匆匆在專案實戰階段弄個半生不熟,然後進入實際工作中接受他人對你的懷疑,不如……早死早超生~~~。        可是,我們畢竟現在才剛學了Java一個月,程式碼都寫的不溜呢,甚至都不知道目前掌握的知識能做點撒實

必做作業原型化系統 一款視頻編輯軟件的界面原型

time 分享 過程 line 產出 編輯模式 創作 創建 推薦 此次設計了前次作業最後所規劃的視頻編輯軟件: NABCD分析: Need:需求 伴隨著我國人民生活節奏的加快,及移動互聯網的迅猛發展,無論是生產生活對於快捷的短視頻的編輯  和分享的需求都日益提高。生

必做作業3原型化系統---1234車網原型APP設計

帶來 現象 androi 系統 產品 運行環境 經濟 由於 我們 1,背景介紹:   汽車給我們的生活帶來了巨大的改變,隨著經濟的發展進步,越來越多的人購買汽車。 但是由於很多消費者對汽車並不了解,在購買汽車時,往往會被銷售人員誤導或者忽悠,最 後花了大價錢買不到愛意的車。

必做作業原型化系統_漫畫閱讀app

進度 根據 oda 個性化 閱讀app https 鏈接 一個 以及 鏈接:https://modao.cc/app/2VDVHJhhM60NGkJZ7CDp5HLwqwGvghT 1.介紹:   漫畫閱讀app收錄各種漫畫,即作為漫畫的一個“集中營”存在,方便用戶訪問市面

必做作業原型化系統-倒數日

多少 dao 簡單的 center 提醒 oda tex 技術 png 基於墨刀的倒數日軟件 背景   很多時候人們需要一個軟件來記錄有意義的日子,或者提醒自己離重要的日子還有多久。倒數日軟件可以幫用戶完成這一目的。 運行平臺   iOS 基本功能   主要有3個部

BAT揭祕在騰訊、、阿里上班,差別竟然這麼

上班篇 騰訊因為 QQ 企鵝形象被稱為鵝廠。 原騰訊大廈位於馬化騰母校深大對面。 騰訊班車覆蓋整個深圳,有超過 250 條線路, 比一箇中小城市的公交系統還要完善。 從早 8 點到晚 11 點,從深圳機場到鹽田, 騰訊班車可直達深圳關內的任何地方。 難怪內部有個說法

地圖-設定地圖小、級別

1、問題背景     地圖可以設定最小級別和最大級別,利用minZoom、maxZoom屬性進行設定2、實現原始碼<!DOCTYPE html> <html> <head&

地圖api開發根據坐標獲得地理描述地址

實例 oca str 地理 location api code city api開發 // 創建地理編碼實例 var myGeo = new BMap.Geocoder(); // 根據坐標得到地址描述

地圖API一根據標註點坐標範圍計算顯示縮放級別zoom自適應顯示地圖

var spa get bsp pan nts viewport 百度 getview 百度地圖中根據頁面中的point,自動設置縮放級別和視圖中心,將所有的point在視圖範圍內展示。 var points = [point1, point2,point3];

從邂逅到共生關於AI落地,與小米的新碰撞

小米 百度 很多朋友都會問,每天看到這麽多寫AI的,甚至一大堆標題黨說AI要毀天滅地的,但是AI到底在哪呢?這是個非常好的問題。AI作為一種重構底層,是需要不斷學習和進步的技術。這樣的技術特征,導致AI可能無法像前端技術那樣帶來瞬間的震撼,而是需要消費者在新的人機共存關系中感受和探索AI帶來的價值,與

牛講解信號與系統以及數字信號處理

示波器 哲學 中間 傅立葉級數 畢業 快速傅立葉 出現 回來 電子 轉自人人網 第一課 什麽是卷積 卷積有什麽用 什麽是傅利葉變換 什麽是拉普拉斯變換 引子很多朋友和我一樣,工科電子類專業,學了一堆信號方面的課,什麽都沒學懂,背了公式考了試,然後畢業了。 先說"卷積有什麽用

第150天網頁中插入地圖方法

function 復制 lbs 提交 應該 頁面 sap create 定位 在現在的很多頁面中,都運用到了百度地圖來定位,例如: 像這樣的地圖,我們可以通過手動來進行放大、縮小、移動等來查找具體的地址,特別方便,在頁面上引用也顯得頁面很有特點,那麽,應該怎麽樣來制作這種

第151天網頁中插入地圖方法(不需要密鑰)

ack 定義 text tran 3.5 index rand lbs adding 今天分享一個在網頁中插入百度地圖的方法,不需要密鑰哦,前兩天,我試了好多次百度開發平臺上使用百度地圖的方法,都需要申請密鑰,申請了,還是用不了,後來,終於發現了一個不需要密鑰的方法,希望對

“中國無人車第一案”出現神轉折景馳為何“投誠”

無人車從2017年年底開始,國內外無人駕駛產業各自上演了一場“官司”,一時間輿論驟然升溫,好不熱鬧。外有Waymo和Uber的技術專利之爭,在國內則是百度對景馳原CEO王勁違反競業協議,竊取商業機密的訴訟。我們知道,Waymo和Uber的官司最終以和解結束,Waymo拿到了Uber股份,未來兩家不排除深化合作

金華做網站SEO技巧短時間內提升權重

義烏網站建設金華做網站SEO技巧:短時間內提升百度權重 外國人用谷歌中國用百度,做百度SEO的站長絕大部分非常在意網站的權重 ,也就是我們所說的BR值,雖然百度權重只是愛站網提供的一個評估值,盡管只是一個片面的說明,卻是站長們不能忽略的數據,尤其在換友鏈的時候br值高的 往往能換到很好的友鏈,短時間內提升百度