1. 電子地圖API比較
聲明不是原創的,我是專業做gis的,公司也曾考慮用api開發,不過因限制較多還是作罷。這個作者還是比較了解的
Google Maps API : Google Maps API 基於Google Maps,能夠使用 javaScript 將 Google Maps 嵌入網頁中。API 提供了大量實用工具用以處理地圖,並通過各種服務向地圖添加內容,從而使用戶能夠在自己的網站上創建功能強大的地圖應用程序。Google Maps API支持交通地圖和衛星地圖,有中文語言版本,其地標文件KML格式已經成為在線地圖的標准格式,Google Earth和Google Maps都支持KML。目前在國際和國內應用都非常廣泛,提到互聯網地圖的應用,基本上不能不提Google Maps API。
Microsoft Virtual Earth API : 基於Virtual Earth的API,英文版,其例子和顯示效果非常豐富,預覽效果後可以查看相關源代碼,可惜目前不支持中國地圖的開發。
Yahoo Maps API : 基於Yahoo Maps,和微軟地圖一樣,也僅支持英文,不支持中國地圖的開發。Yahoo地圖提供基於Flash、Ajax和Map Image三種形式的開發介面,功能較為齊全,顯示效果不錯。
MapABC API : 基於MapABC的國內地圖供應商,Google地圖的中國數據就是使用MapABC的,但其API介面和Google的並不相同,其API的開放性和靈活性不如Google地圖API。
MapBar API : 基於MapBar的國內地圖供應商,其數據提供網路地圖使用。
我要地圖API : 基於51地圖,我要地圖的一個特色是提供地圖數據下載,可以實現本地桌面地圖,不過其地圖數據容量有數百兆之大。
我們對市面上幾款主流的地圖API服務提供商:Google地圖服務,MapABC地圖服務,微軟地圖服務,以及其他地圖服務進行技術調研,根據調研總結結果為我們選用更為符合需求的地圖服務提供商提供參考。
1.調研內容計劃
本次技術調研內容主要為:
1. 各類MAP-API使用方法。MAP-API針對系統的開發效率的調查,比如在使用的合理性,封裝的
便利性幾個方面。
2. 各類MAP-API的功能初步調研,各類MAP-API在免費版本中的功能限制調研,針對免費和收費
版本的異同,收費策略和價格
3. 針對每種MAP-API以免費版本的API完成一個簡單的調用示例,也便於對每種API進行代碼級別
的使用體驗。
2.調研詳細內容
2.1 GOOGLE MAP API 調研
2.1.1. 主要使用方法介紹和評估:
Google Map API的種類和應用場景:
A. Google JavaScript地圖API : 內嵌Iframe展現形式,適用於一般的互聯網應用系統,具有
標准主流瀏覽器裝載的客戶端系統。支持的瀏覽器類型:ie,firefox,safari,google chrome。使用
標準的Java腳本進行開發,可集成google地圖空間,與標准google地圖功能類似。
B. Google Maps API(Flash版):FLASH展現形式,使用flex繼續開發,適用於標准瀏覽器裝載
的客戶端系統。『
C. Google 靜態地圖API: 圖片:圖片展現形式,使用http介面進行圖片地圖的創建,所實現功
能較前兩種少,但無需使用java腳本實現,適用於手機或定製化客戶端系統的服務調用。靜態地圖和前
兩種地圖相比還有個遵從每位查看者每天的唯一(不同)圖像請求不超過 1000 次的查詢限制配額,也
就是說每個訪問者每天可以查看1000個不同的地圖圖片,對於相同的圖片沒有限制,所以考慮到一般系
統的訪問量,此配合即可滿足大部分系統的要求。
評估:
Google提供的這三種API已經基本可以滿足大部分的系統需求,在開發難度上除Flex還不是主流技
術,開發成本較高外,其他兩種技術在使用上都使用標準的網頁開發技術,介面難度系數不大,尤其是
在靜態地圖API中,還提供了專門為手機所使用的WAP的地圖類型.
2.12. API主要特性列表以及版本功能限制:
Google Map API的主要特性列表:
A. 地址解析(從地址名稱解析到具體經緯度)
B. 縮放級別的設置
C. 圖像大小的設置
D. 標記添加
E. 地圖路徑顯示
(以上為靜態地圖和動態地圖共有,以下為動態地圖獨有)
F.事件監聽(監聽客戶端瀏覽器事件,並在需要接受的事件總定義處理方法)
G.. 地圖控制項(包括載入標准地圖控制項以及創建自定義控制項,比如可以自己加入標注的控制項,切
換地圖類型的控制項,縮放地圖的控制項等等)
H. 街道全景對象
I. 與google earth集成
J. 交通功能(行車路線,出行模式,路線路段)
K.可與Google AJAX API 集成開發,提高開發效率
L. 支持HTTPS連接對API的訪問(企業版專有)
2.1.3.收費策略和商業限制:
Google Maps Api分為兩個版本,一個是免費版,一個是企業版。
免費版不對使用者進行收費,但是對使用場景有一定的商業限制:
A. 每天可發出的地址解析請求數有限制,遵從每位查看者每天的唯一(不同)圖像請求不超過
1000 次的查詢限制配額。
B. 服務必須讓最後的使用者免費訪問。所以部分商業用途是符合使用條款的,以下兩種情況不能
使用免費版:(1)僅付費客戶可以使用您的網站(2)僅可從您的公司或您的 Intranet 中訪問您的網
站。 詳見google api的使用條款
C. 不能更改或遮蓋地圖上的徽標或歸屬內容。
企業版除具有免費版的所有功能外,還會根據收費策略的不同,加強服務功能的提升並更改了一些
商業限條款。這些增強點為:
A. 支持強大的服務級別協議(SLA)
B. 客戶服務支持
C. 增加了地址解析限制
D. 商業級應用限制的變更
E. 支持HTTPS連接對API進行訪問,達到數據保密的目的。
2.1.4.技術支持:
免費版的技術支持包括google code的專業詳細的開發文檔和google 地圖API論壇的支持。
企業版除上述支持外還有人工的客戶服務支持。
2.1.5. Google MAP API 使用:
為了正常使用google API,在進行開發之前需要在其項目主頁上
http://code.google.com/intl/zh-CN/apis/maps/ 下載API所需的密鑰。
Google Code上有很多map api的示例,講解的十分全面,這里就不多說了。
總結:Google api 優勢: 充足的開發資源和文檔資源,與google map平行的api功能,強大的自定義
組件和控制項功能。在靜態API中有針對mobile類型系統的地圖類型,API操作簡單高效,符合一般性系統
開發需求。
2.2 MAP ABC API 調研
2.2.1. 主要使用方法介紹和評估:
Map ABC API的種類和應用場景:
A. Ajax For Flash 地圖API2&Ajax搜索API : MapABC只有一種API類型,就是基於java腳本技術的
內嵌Flash地圖展現形式,適用於一般的互聯網應用系統,具有標准主流瀏覽器裝載的客戶端系統。支
持的瀏覽器類型:因為官方未公布所支持的瀏覽器類型,所以本次調研測試了ie,firefox基本沒有問
題,由於MAPABC使用的地圖展現載體是flash,所以理論上所有支持flash格式和Javascript的瀏覽器都
可以使用。
B. MAP ABC 靜態API:通過JAVA腳本進行靜態地圖的生成,主要應用場景在需要加快地圖載入,
只是示意性進行地圖展示的系統中調用。
C. MAP ABC 地圖組件API:在原有API的基礎上進行封裝,簡化了開發復雜度,提高了開發效率。
評估:
MAP ABC介面全部採用java腳本進行調用,腳本使用比較方便,但是生成的地圖格式為flash格式
,暫不支持其他格式的地圖。至少目前為止廠商在免費版本還未提供基於服務端介面的地圖生成的API
,企業版是單獨提供此類介面的。目前來看MAPABC API還是著重於地圖WEB端的展示作用,從這點來看
,比Google的免費版弱一些。
2.2.2. API主要特性列表以及版本功能限制:
MAP ABC API的主要特性列表:
A. 縮放級別的設置
B. 圖像大小的設置
C. 標記添加
D. 地圖路徑顯示
F.事件監聽(監聽客戶端瀏覽器事件,並在需要接受的事件總定義處理方法)
G.. 地圖搜索功能(地點搜索,公交路線搜索,行車路線搜索)
H. 地圖繪圖工具集成
I. 地圖控制面板
J. 靜態地圖生成功能
K. 地圖組件封裝
2.2.3.收費策略和商業限制:
MapABC Api分為兩個版本,一個是公眾版,一個是企業版。
免費版不對使用者進行收費,但是對使用場景有一定的商業限制:
A. 使用Map ABC API服務,網站系統所提供給用戶的服務必須是開放給一般大眾使用且免費的服務
詳見map abc api的API使用條款。
B. 不能更改或遮蓋地圖上的徽標或歸屬內容。
企業版除具有公眾版版的所有功能外,還會增加一些定製服務和技術支持服務。這些增強點為:
D. 專業開發團隊的開發服務
E. 從前台界面到後台功能的定製開發
F. 有針對性的MapABC地圖API開發培訓
G. 快速響應的技術支持。
2.2.4.技術支持:
免費版的技術支持包括MAP ABC網站文檔以及MAP ABC 地圖API論壇的支持。
企業版除上述支持外還有人工的客戶服務支持。
2.2.5 MAPABC API 的使用
為了正常使用MAPABC API,在進行開發之前需要在其項目主頁上
http://code.mapabc.com/v1/signup.shtml 下載API所需的密鑰。
示常式序可見其網站。
2.3 其他地圖服務 API 調研總結
以上我們對國內國外兩種主流的地圖服務進行了技術調研,除此之外,市面上還有一些其他的地
圖API,比如51ti,yahoo地圖API,微軟Virtual Earth API,MAPBAR 等。
51ditu和Mapbar同MapABC類似,都是國產地圖服務,其特點同MapABC類似,主要是不支持靜態地
圖的服務端調用,全JAVAscript的調用方式,在WEB上調用方便,但介面靈活性差,並不合適WAP網站的
開發。
Yahoo 的地圖介面功能與Google類似,介面類型相比google更為方便和靈活,但是目前雅虎地圖
API服務還不支持中國地圖,所以目前暫不考慮。如果以後開放了中國區地圖,Yahoo API 也是值得考
慮的選擇。目前Yahoo地圖支持靜態地圖生成,同時每日的同一ip的訪問限制為50000次.
微軟地圖virtual map api功能較為全面,介面設計靈活性與可封裝性也很好,同樣支持靜態地圖服務
端生成,藉助微軟的MSDN社區的支持下,開發資源和文檔也堪比Google Maps,但是由於此產品是微軟
自有服務,保持微軟一貫的風格,virtual map 官方稱只支持ie6/ie7,另外在調用速度上個人感覺比
Google API 也略遜一籌。同時在本次調研時,微軟的live.cn因為某些原因被GFW封掉了,因此同樣影
響到了微軟地圖API服務ditu.live.com, 類似的事件希望以後還是少發生為妙。
部分資料來源於網路,僅供開發者參考!
2. JAVA的主要用途是哪個方面
1、Android應用
許多的 Android應用都是Java程序員開發者開發。雖然 Android運用了不同的JVM以及不同的封裝方式,但是代碼還是用Java語言所編寫。相當一部分的手機中都支持JAVA游戲,這就使很多非編程人員都認識了JAVA。
2、在金融業應用的伺服器程序
Java在金融服務業的應用非常廣泛,很多第三方交易系統、銀行、金融機構都選擇用Java開發,因為相對而言,Java較安全 。大型跨國投資銀行用Java來編寫前台和後台的電子交易系統,結算和確認系統,數據處理項目以及其他項目。
3、網站
Java 在電子商務領域以及網站開發領域占據了一定的席位。開發人員可以運用許多不同的框架來創建web項目,SpringMVC,Struts2.0以及frameworks。
4、嵌入式領域
Java在嵌入式領域發展空間很大。在這個平台上,只需130KB就能夠使用Java技術(在智能卡或者感測器上)。
5、大數據技術
Hadoop以及其他大數據處理技術很多都是用Java,例如Apache的基於Java的HBase和Accumulo以及 ElasticSearchas。
6、高頻交易的空間
Java平台提高了這個平台的特性和即使編譯,他同時也能夠像 C++ 一樣傳遞數據。正是由於這個原因,Java成為的程序員編寫交易平台的語言,因為雖然性能不比C++,但開發人員可以避開安全性,可移植性和可維護性等問題。
7、科學應用
Java在科學應用中是很好選擇,包括自然語言處理。最主要的原因是因為Java比C++或者其他語言相對其安全性、便攜性、可維護性以及其他高級語言的並發性更好。
(2)googlemapjavaapi擴展閱讀:
java的用途已經數不勝數,舉不勝舉,擁有著無可比擬的能力,另外在節省時間和開發費用方面也十分可觀,程序員可以藉助java語言,自由的使用現有的硬體和軟體系統平台,因為java是獨立於任何平台的。具體應用領域總結如下:
第 1 個領域、桌面應用系統開發;
第 2 個領域、嵌入式系統開發;
第 3 個領域、電子商務系統開發;
第 4 個領域、企業級應用開發;
第 5 個領域、互動式系統開發;
第 6 個領域、多媒體系統開發;
第 7 個領域、分布式系統開發;
第 8 個領域、Web應用系統開發。
網路-Java
3. 安卓開發需要學習什麼
學習分三個階段:
1,Android基礎階段:平台架構特性(JAVA/C) Market/應用程序組件 環境搭建與部署/打包與發布 AVD/DDMS/AAPT 調試與測試 相關資源訪問/資源製作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及深層實現
2,Android進階初級:組件Widget/ 菜單Menu/ 布局Layout 詳解 Xml解析(Pull/Dom/Sax)/JNI 解析SQL資料庫原理,。
SQLite /SharedPreferences/File詳解 多媒體Audio/Video/Camera 詳解
3,Android進階高級:藍牙/WIFI SMS/MMS 應用實現 深層次解析GPS原理。
實現LocationManager/LocationProvider 進行定位/跟蹤/查找/趨近警告以及Geocoder正逆向編解碼等技術細節 2D圖形庫(Graphics/View)詳解 SDCARD/感測器/手勢 應用實現
(3)googlemapjavaapi擴展閱讀:
知識體系
1、Unix/linux平台技術:基本命令,Linux下的開發環境
2、企業級資料庫技術:SQL語言、SQL語句調優、Oracle資料庫技術
3、Java 語言核心技術:Java語言基礎、Java面向對象編程、JDK核心API、Java集合框架、Java網路編 程、JavaI/O編程、Java多線程編程、Java異常機制、Java安全、JDBC、XML
4、軟體工程和設計模式:軟體工程概述、配置管理及SVN、UML、基本設計模式
5、Android應用開發基礎:Android開發平台、Eclipse+ADT開發環境、AVD及感測模擬器調試、Android核心組件、Android常用組件、Android高級組件、文件及網路訪問、SQLite資料庫編程、後台服務編程
6、互聯網核心技術: HTML、CSS、JavaScript、JQuery、Ajax應用
7、Android高級應用開發:音頻視頻攝像頭、互聯網應用、GPS和位置服務、Google Map、2D3D繪制、感測器開發、游戲開發、電話及SMS服務、網路BluetoothWi-Fi等。
8、Android系統級開發:移植、驅動、NDK(C方向)。
9、JavaEE核心技術:Servlet核心技術、JSP核心技術、Struts、Spring、Hibernate框架。
4. 一個合格的Java開發工程師應該具備哪些技能
.CoreJava,就是Java基礎、JDK的類庫,很多童鞋都會說,JDK我懂,但是懂還不足夠,知其然還要知其所以然,JDK的源代碼寫的非常好,要經常查看,對使用頻繁的類,比如String,集合類(List,Map,Set)等數據結構要知道它們的實現,不同的集合類有什麼區別,然後才能知道在一個具體的場合下使用哪個集合類更適合、更高效,這些內容直接看源代碼就OK了2.多線程並發編程,現在並發幾乎是寫服務端程序必須的技術,那對Java中的多線程就要有足夠的熟悉,包括對象鎖機制、synchronized關鍵字,concurrent包都要非常熟悉,這部分推薦你看看《Java並發編程實踐》這本書,講解的很詳細3.I/O,Socket編程,首先要熟悉Java中Socket編程,以及I/O包,再深入下去就是JavaNIO,再深入下去是操作系統底層的Socket實現,了解Windows和Linux中是怎麼實現socket的4.JVM的一些知識,不需要熟悉,但是需要了解,這是Java的本質,可以說是Java的母體,了解之後眼界會更寬闊,比如Java內存模型(會對理解Java鎖、多線程有幫助)、位元組碼、JVM的模型、各種垃圾收集器以及選擇、JVM的執行參數(優化JVM)等等,這些知識在《深入Java虛擬機》這本書中都有詳盡的解釋,或者去oracle網站上查看具體版本的JVM規范.5.一些常用的設計模式,比如單例、模板方法、代理、適配器等等,以及在CoreJava和一些Java框架里的具體場景的實現,這個可能需要慢慢積累,先了解有哪些使用場景,見得多了,自己就自然而然會去用。6.常用資料庫(Oracle、MySQL等)、SQL語句以及一般的優化7.JavaWeb開發的框架,比如Spring、iBatis等框架,同樣他們的原理才是最重要的,至少要知道他們的大致原理。8.其他一些有名的用的比較多的開源框架和包,Netty網路框架,Apachecommon的N多包,Google的Guava等等,也可以經常去Github上找一些代碼看看
5. android軟體工程師需要學習什麼
首先學習java,java如果搞定,android學起來會比較輕松。
android基礎(Android開發環境調試,應用結構,界面組件與界面編程,四大組件)
android中級(文件IO與SQLite,圖形、圖像與動畫、音頻、視頻的錄制於播放,感測器編程,GPS應用)
android高級(網路編程與Web Service,OpenGL-ES 3D開發,整合Google服務,使用NDK開發,java和c相互調用)
……………………………………………………
如果對android感興趣,看看一個中專生怎麼自學android到找到工作。
我是一名中專生,在學校里讀的是計算機專業,一次偶然的機會我在網上看到了一段新聞說安卓現在特別火有一年工作已經的工資可以達到8000元左右就算沒工作經驗起薪也有5000元,5000元對我來說簡直就是個天文數字,於是我決定學習安卓,後來我到書店找了一些安卓的書但是由於基礎太差,很多都看不明白,網上看到可以報培訓班都是幾乎每所都要上萬大洋,對於我一個一個月只能賺幾百元的中專生來說簡直是個天文數字,後來在IT學習聯盟這個網站看到了一套安卓視頻叫<<安卓就業班>>(喜歡《安卓就業班》的可以復制 sina.lt/brxC 粘貼瀏覽器地址欄按回車鍵即打開)。價格還挺合理的。覺得內容挺不錯的於是我決定買下來,我想既然我看書看不明白,看視頻應該容易看明白吧,自從我把視頻買下來後就就天天看,因為自己基礎太差了,所以每天至少學習5個小時以上,那段日子真的很辛苦但又很充實,覺得我的人生最有意義的時間段。我拿到光碟後首先跟著他要求的學習順序學習(因為他已經偏好了學習的順序)從第一塊開始到第十七塊,首先學的是JAVA,是一個培訓視頻,總共十幾G,但老師幽默風趣而又輕松的課堂教課,使我發現原來學習JAVA並不是一件很難的事情,但我的基礎太差了有些地方還是不容易看懂,於是有些地方重復看了兩,三篇,甚至四,五篇,大概這樣過了一個月我就把JAVA給學會了,這個月因為要上班所以經常學到晚上1,2點早上6點多就起床,星期六,星期天的話就從早上看到晚上,所以有段時間眼睛經常通紅通紅的,但是我知道天道酬勤這個成語,你努力付出就一定得到回報的,於是我堅持了下來,到了第二階段,學習android了,他有基礎篇和深入篇,基礎篇比較容易,深入篇的話還是有點難度的,但是我覺得JAVA學好了,android並不難學,學起來還覺得挺容易的,心裡不由自主的笑了,覺得是不是我的付出有了回報,到了第三階段也是最難的了,是基於linux的嵌入式,因為android的是由linux底層開發的再加上界面是JAVA,所以學好linux的嵌入式也比較重要(如果你以後想成為android內核移植這個方向走的非常重要,工資可是很高的哦,如果你只想做界面的話了解一下也不錯),他首先從C語言開始教,然後到linux嵌入式,我覺得這部分太難理解了,很多都是硬著頭皮看完的,因為有不地方看不明白,斷斷續續的來到了第四階段項目階段這里總共有22個大項目,一開的時候還是跟不上老師的腳步但是後來就慢慢的跟上了,我覺得項目很重要,他把之前的所有的東西都復習了一遍而且讓你熟悉了真正企業項目實線,使你以後工作的時候更容易上手,學習了大概4個多月。終於學完了。就開始找工作。最後找到一份在小公司工作,待遇也有4500元,感覺還行。但是這4500元對我只有中專文聘來說已經很多很多了,我很滿足了,我覺得只有肯努力,也會有成功的一天的。
………………………………………………