最近被安排了開發電子地圖的差事,以前只聽說過百度谷歌等有免費的開源庫可供調用,但是沒有自己做過具體的東西,現在活既然上面安排了,咱就得學哪,下面我將把我最近自己總結的一些知識與大家分享。(強烈建議大家有分享精神,如果大家都很吝嗇自己的知識,你以后上百度,谷歌,CSDN,博客園等地方也將不會看到任何有價值的信息了,這是很可怕的趨勢,因為我就是從這些共享的資源里學到了知識。)好了,不廢話了,進入主題。
本文我將從如何使用地圖API(本文以百度為例,谷歌類似)開始,往后的擴展行的內容詳見后續文章。
1.打開鏈接http://developer.baidu.com/map/jshome.htm
這里有很多DEMO,或者你直接百度搜索“百度地圖API”,第一個就是。進入后有很多方向供你選擇,由於現在開源的地圖API都是JS腳本寫的,所以我上面的鏈接就只針對JAVASCRIPT進行介紹。
即使是編程菜鳥(像我這種),也知道當你在任何一個開發環境下寫代碼時,都需要加入頭文件,例如,你要在C++里使用cout,cin呢就必須要加入include <io.stream>;與這種思維類似,開發電子地圖系統也是一樣的。你想啊,百度地圖都是開發好的,人家能隨隨便便就把這東西直接給你嗎?搞笑呢么。只可能給你一些接口讓你去開發。呢么問題就是如何讓這些接口有意義呢?比如你現在想在地圖上定點一個位置,百度地圖里有一個函數就是提供此功能的,setCenter(Point:String);呢么你無論把這句話加在頁面的任何一個地方都不會起作用,因為頁面根本就不知道這是個什么東西,這時就要加入API庫的鏈接:
<script src="http://api.map.baidu.com/api?v=1.4" type="text/javascript"></script>
這個鏈接就好比給setCenter(Point:String)加了一個頭文件。其實這很簡單,而我這么介紹是因為我幾乎就沒學過什么HTML,CSS,JS,WEB啊,基本都是靠自己的理解去現學現用的,就拿JS來說我都沒有任何基礎,直接拿其他語言的語法去些的,遇到什么問題就去搜JS的函數定義啊,什么特殊的事件等等。所以原諒我這么羅嗦的介紹,只為給像我一樣的小白說的更清楚。下面解釋一下這個鏈接:
api:該鏈接為百度地圖api庫
v=1.4:庫的版本為1.4版本,是目前最高的
以前百度API開放的時候是需要注冊KEY的,現在就不需要,所以使用起來更簡單了。另外提一點,在參考百度的DEMO時要注意這個版本,現在比如V=1.2和V=1.4在有些功能上有些偏差,而且有的函數在某些版本里可能有,在高級版本里已經廢棄了。
2.以百度提供的DEMO為例,入門介紹
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
#l-map{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;}
#r-result{height:100%;width:20%;float:left;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
<title>百度地圖的Hello, World</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
var map = new BMap.Map("allmap"); // 創建Map實例
var point = new BMap.Point(116.404, 39.915); // 創建點坐標
map.centerAndZoom(point,15); // 初始化地圖,設置中心點坐標和地圖級別。
map.enableScrollWheelZoom(); //啟用滾輪放大縮小
</script>
---------------------------------------------------------------------------
將上面的頁面復制下來,保存為.html文件,然后運行該靜態頁面將會顯示一張任何功能都沒有,但卻和百度地圖一樣的頁面。
上面是一個很簡單的例子,沒有向java,C#,C++的類或cs文件,只是一個簡單的Html文件
說明,百度地圖與具體的語言無關。它只是公布了調用接口,我們只需要做的的事向接口發送命令和接收數據
若不能顯示或者是出現亂碼,則用以下辦法解決:
1.當你保存txt文件時采用默認編碼格式(ANSI),則在上述代碼中將編碼格式改為charset="gb2312";若還不能顯示,則查看是不你的瀏覽器的問題,在internet工具,選項里找到“禁用腳本提示”,看是否打鈎了。
2.保存txt文件時選擇編碼格式為utf-8,則上面的代碼就能正常顯示(推薦此編碼,不解釋)。
由於在寫篇文章時CSDN博客剛好在維護,所以是先在txt里寫的,版式若不好莫怪啊。
下一篇我將介紹如何利用上述代碼進行二次開發。