導航:首頁 > 操作系統 > androidgis開發

androidgis開發

發布時間:2023-10-23 05:39:28

A. 移動gis平台ucmap for android有哪些功能哪位大神詳細列舉一下

UCMap for Android是當前主流的移動GIS開發組件,擁有業界最快的地圖顯示性能,依託龐大的介面體系為開發者提供強大且豐富的定製功能,UCMap for Android從2009年第一版推出至今,經歷了多次的版本升級,其穩定性得到眾多實際項目的檢驗,在GIS各行業得到廣泛應用,例如,土地確權、國土監察、電力踏勘、林業調查、林業消防、管線巡檢、部件採集、城市管理、房產測繪、農業測圖配方、單兵通、航跡管理、室內導航、智慧景區、公安應急等
1、數據格式
UCMap for Android支持通用的矢量地圖格式SHP,支持各種遙感影像格式Geotiff、Img、BMP、JPG、PNG等,同時還支持離線的Google地圖和影像,或者自定義瓦片圖;
2、數據加密
地圖數據是重要的保密信息,為了在數據丟失或未授權的情況下,外界無法解讀出數據本身的內容,這就要求數據以密文的形式存在;為此,UCMap for Android支持地圖數據的加密,經過加密的地圖是以密文的形式存在,只有輸入正確的口令才能解密;
3、數據更新
地圖數據是有現勢性的,即經過一段時間,由於地理自然環境的變化,地圖數據也應及時更新,這樣才能讓地圖數據更加准確地反映現實情況,所以,地圖數據的更新就顯得尤為重要;UCMap for Android不但支持離線地圖,同時也支持地圖在線更新,即可以在線更新替換整個地圖數據,也可以更新替換地圖中的某些圖層;
4、符號化
地圖是將地理數據通過符號化的方式予以展現的,UCMap for Android除了支持常規預定義的點、線、面符號外,還支持自定義的SVG矢量符號,用戶可以自定義各種矢量符號來渲染地圖,實現地圖強大的直觀表現力;
5、地圖顯示
地圖是由各個專題的圖層疊加而成,圖層的性質有兩種,即矢量圖層和影像圖層,在坐標一致的前提下,可以將影像圖層作為背景圖,將矢量圖層疊加在影像圖層之上;UCMap for Android擁有業界最高的地圖瀏覽性能,支持矢量圖和影像圖疊加顯示,支持地圖的縮小、放大、平移、雙指旋轉,支持滑動的動畫效果,支持地圖比例尺&指北針等小部件;
6、地圖與圖層管理
裝載地圖、設置\獲取地圖范圍、設置\獲取地圖比例尺、設置\獲取地圖單位、獲取地圖圖層,添加圖層、刪除圖層、調整圖層順序、修改圖層標注欄位、修改圖層樣式、查詢圖層等;
7、地圖查詢
地圖查詢分屬性查詢和空間查詢,屬性查詢是以地圖要素的某些屬性值為條件進行SQL查詢,查詢返回要素的屬性或幾何信息;空間查詢是以地圖要素之間的空間拓撲關系為條件進行擴展型的SQL查詢;UCMap for Android支持各種類型的SQL查詢,尤其是空間查詢,能覆蓋要素之間各種空間拓撲關系,如Disjoint、Touches、Crosses、Within、Overlaps、Contains、Intersects、Equals、DWithin等空間謂詞;
8、要素編輯
一個要素對應資料庫表中的一條記錄,記錄里有屬性欄位和幾何欄位,所謂編輯就是對這些屬性欄位和幾何欄位進行增加、刪除、修改等動作,於是,添加要素、刪除要素、更新要素、導出shp是UCMap for Android最基礎的功能;為了適應移動端手指或觸筆來編輯幾何圖形,UCMap for Android設計了人性化的編輯交互模式,如點選或框選要素、捕捉節點、移動節點、添加節點、刪除節點、移動要素、編輯動作的Redo\Undo(可以無數次)、信息查詢info等;UCMap for Android還提供了更高級的編輯,如線或圖斑的裁剪、合並等拓撲編輯;針對測量成圖的需求,還提供了根據測圖過程中測得的長度和角度自動繪制圖形的功能;
9、專題圖渲染
UCMap for Android支持多種專題圖渲染,根據所給定的屬性條件,可定製各種專題渲染,甚至可以隱藏圖層中的要素;
10、坐標系轉換
UCMap for Android支持2個任意投影類型之間的坐標轉換,支持四參數、七參數坐標轉換;
11、地圖量算
UCMap for Android支持地圖測距、測面積、測角度;
12、定位監控和軌跡顯示
UCMap for Android能實時對若干監控點進行實時顯示並快速刷新,能查詢並繪制某個監控點的歷史軌跡;
13、地圖標注
UCMap for Android提供了一個特殊的圖層,即裝飾圖層,用戶可以在這個圖層上對地圖進行標繪,下面要重點介紹的地圖標繪就繪制在這個圖層上,除了能標繪軍標以外,還能繪制矩形、直線、圓、橢圓、路徑、文字等;
14、等值線繪制
UCMap for Android支持對離散高程點(或氣象點)進行插值,並生成高程等值線或氣象等值線圖;
15、路徑規劃與導航
UCMap for Android支持特定場所的簡單道路的路徑規劃,例如,室內地圖、景區地圖、港口碼頭等特定場所的路徑規劃;
16、地圖標繪
針對軍事作戰、應急等行業,協同標繪是其基本需求,UCMap for Android是支持矢量標繪,能對標繪的符號進行組合、拆分、移動、縮放、拉伸、旋轉等等操作;標繪是在裝飾圖層上進行的,一個標繪就是一個裝飾對象,裝飾對象可以是任意的SVG符號,也可以是預定義的圖形;對於測繪行業,地圖標繪也為測繪草圖的繪制提供了完美的解決方案;
17、集成功能
UCMapfor Android還可以將手機拍照、錄音、錄像、GPS定位等功能集成在一起,在地圖上記錄這些多媒體信息採集的時空信息;

UCMapfor Android為開發人員提供了強大的GIS基礎平台,用戶根據自身項目的需求、通過二次開發來實現所需要的應用產品;UCMap介面龐大、結合本人近幾年移動GIS開發經驗,以上只是UCMap基礎功能的節略,更深入細致的使用還需要開發者閱讀UCMap的開發教程和API文檔!

B. 安卓開發如何入門

我幹了3年Androidsdk開發,覺得到了瓶勁沒法更進一步,於是譽信花了一年多點時間,大概摸到點門徑。根據前輩的經驗,Android底層完全入門需要兩年。

先說下我的入門過程:

第零步,下載源碼,我下的4.2的,框架層源碼10G,內核2G多,ctags給框架層建的標簽文件都有600M,當時讓我有點震撼,用的vimctagscscope來閱讀,還算不錯,架構挺清晰的。

第一步,我找到了一本好書《Android的設計與實現第一卷》它講了Android框架層的啟動,初始化,服務框架初始化,Binder,消息循環,。據作者說後面會出講UI子系統的第二卷,拭目以待。其實這本書看了幾十頁我就發現需要第二步的知識,否則看不下去,於是跳去第二步。

第二步,學習Linux系統編程,在看《Android的設計與實現》的時候我發現,框架層的Native部分,全是Linux編程。為了掌握這部分知識,我花了4個月學習了《Linux系統編程手冊》(TLPI)這本1000多頁的書,我以前是搞WIndows文件系統這塊的,所以C語言還比較熟,TLPI的習題很有意思,量也比較大,堅持下來還是收獲很多。

第三步,花了4個月學習了一些Linux內核的知識,看了LKD,PLKA看了一半多。越學越沒底,覺得不懂得越來越多,不過這個也正常,只有靠慢慢磨,估計以後要不斷的磨這塊。

第四步,回頭看Android源碼,這次一口氣看完了《Android的設計與實現第一卷》,終於對框架層有了譜。同時真的數次把我看暈,前面看Linux內核源碼都沒這么暈,不斷在Java層和Native層之間跳有點磨腦漿。其中我又覺得Java的基礎沒有打太牢,回去補了一個月的《CoreJava》第八版。但是這書沒有涉及UI子系統,於是又看了《Android內核剖析》

第五步,《Android內核剖析》(這本書實際上是講框架層的,作者也是個搞嵌入式的,所以他在寫框架層的時候文筆不太好,很羅嗦,不過還是有很多看點,到他後來寫做ROM,玩開發板時估計是說到了搭滲他的本行,一下子遛起來了看得出還是挺有水平的,這本書知識有點舊畢竟講的是2.3很多代碼已經過時,但是作者很多點子很有參考價值)這本書講UI子系統和按鍵/觸摸消息處理系統還是很有分量的,尤其13章View繪制那裡,結合源碼研究很有收獲。而後面他講編譯框架和ROM相關的東西都是挺寶貴的資料。

第六步,為了再補一下其他諸如電源管理模塊等子系統的知識看了,《深入理解android》系列,個人認為這個系列看起來有點不太舒服,不過作為補充印證還是比較有價值。

第七步,《Android系統源代碼情景分析》,羅升陽的源碼分析大作,比《Android的設計與實現》分析得更細致,但缺點是涉及到模塊比較少,選用的源碼也比《Android的設計與實現》更舊一點。看完書後需要去研究作者的博客,東西挺多的,一定讓你滿意。

第八步,買塊開發板自己玩。這步我還沒走到,原因是我覺得我還差點准備知識。可能要再幾個月,到時准備入塊6410或者樹莓派。

最後,由於我11年以前都是搞Windows這塊的,所以對Linux知識不是很了解,不得已看了這么些書,如果是一直知虛脊做Linux的人,很多步驟估計可以省掉了。直接上源碼才是正道。

我本身做著移動GIS開發的工作,學框架層全是因為興趣,但招聘平台Android框架層開發人員還是蠻有競爭力的有不少定製ROM,智能電視的工作都處於人才難求狀態,畢竟有一定的門檻,現在各種ios培訓,讓奔著錢干開發的人紛紛湧入,而ios只能幹sdk開發的缺點就暴露出來了,一堆新手老手,菜鳥大牛全擠在SDK開發這塊,我覺得不太妙。反觀Android這邊,雖然入門菜鳥沒有搞ios來錢,但是可持續性很好,從sdk-》框架》驅動》內核這樣幹下去。干著干著發現自己漸漸變成了Linux開發者/嵌入式開發者的人也不少,新人,老手,菜鳥大牛各居其位,層次性很好。

C. android百度地圖怎麼開發

一、基本概念:
(一)、網路地圖:
網路地圖 Android SDK是一套基於Android 2.1及以上版本設備的應用程序介面。 您可以使用該套 SDK開發適用於Android系統移動設備的地圖應用,通過調用地圖SDK介面,您可以輕松訪問網路地圖服務和數據, 構建功能豐富、交互性強的地圖類應用程序。
網路地圖Android SDK提供的所有服務是免費的,介面使用無次數限制。您需申請密鑰(key)後, 才可使用網路地圖Android SDK。
(二)、LBS:(Location based Service)基於位置的服務
基於位置的服務,它是通過電信移動運營商的無線電通訊網路(如GSM網、CDMA網)或外部定位方式(如GPS)獲取移動終端用戶的位置信息(地理坐標,或大地坐標),在地理信息系統(外語縮寫:GIS、外語全稱:Geographic Information System)平台的支持下,為用戶提供相應服務的一種增值業務。

二、網路地圖使用步驟:【參照(http://developer..com/map/sdk-android.htm)】
(一)、HelloBaiMap:
1、第一步:申請網路地圖密鑰(API_KEY):
http://developer..com/map/sdk-android.htm

2、第二步:在工程里新建libs文件夾,將開發包里的mapapi_vX_X_X.jar拷貝到libs根目錄下,將libBaiMapSDK_vX_X_X.so拷貝到libs\armeabi目錄下(官網demo里已有這兩個文件,如果要集成到自己的工程里,就需要自己添加),拷貝完成後的工程目錄如下圖所示;

註:liblocSDK3.so和locSDK_3.1.jar為網路定位SDK所使用資源,開發者可根據實際需求自行添加。

3、第三步:在AndroidManifest中添加開發密鑰、所需許可權等信息;
<application

<meta-data

android:name="com..lbsapi.API_KEY"

android:value="P3G69b5s87YG5M31f8A7oyLW"/>

</application>

<uses-permissionandroid:name="android.permission.GET_ACCOUNTS"/>

<uses-permissionandroid:name="android.permission.USE_CREDENTIALS"/>

<uses-permissionandroid:name="android.permission.MANAGE_ACCOUNTS"/>

<uses-permissionandroid:name="android.permission.AUTHENTICATE_ACCOUNTS"/>

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permissionandroid:name="android.permission.INTERNET"/>

<uses-permissionandroid:name="com.android.launcher.permission.READ_SETTINGS"/>

<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/>

<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>

<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permissionandroid:name="android.permission.BROADCAST_STICKY"/>

<uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/>

<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
4、第四步:在布局文件中添加地圖控制項:
<com..mapapi.map.MapView

android:id="@+id/mapView"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:clickable="true"/>
5、第五步:在應用程序創建時初始化 SDK引用的Context 全局變數:
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 在使用SDK各組件之前初始化context信息,傳入ApplicationContext
// 注意該方法要再setContentView方法之前實現
SDKInitializer.initialize(getApplicationContext());

// 裝載布局文件
setContentView(R.layout.activity_main);
}
6、第六步:創建地圖Activity,管理地圖生命周期:
publicclass MainActivity extends Activity {

private MapView mapView;

@Override

protectedvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 在使用SDK各組件之前初始化context信息,傳入ApplicationContext

// 注意該方法要再setContentView方法之前實現

SDKInitializer.initialize(getApplicationContext());

// 裝載布局文件

setContentView(R.layout.activity_main);

mapView = (MapView) findViewById(R.id.mapView);

}

@Override

protectedvoid onResume() {

super.onResume();

mapView.onResume();

}

@Override

protectedvoid onPause() {

super.onPause();

mapView.onPause();

}

@Override

protectedvoid onDestroy() {

super.onDestroy();

mapView.onDestroy();

}

}
(二)、基礎地圖:
1、實現基礎地圖的操作步驟:
布局文件中使用MapView;
初始化SDK,並檢查Key的合法性;
SDKInitializer.initialize(getApplicationContext());
checkKEY();
初始化BaiMap對象;
對MapView進行findViewById();
MapView對象調用getMap(),返回BaiMap;
設置BaiMap;
setMapType();
setTrafficEnabled();
(三)、POI搜索:
1、實現POI搜索的操作步驟:
布局文件中使用fragment,用來實現對BaiMap的載入;
class="com..mapapi.map.SupportMapFragment"
當前Activity繼承於FragementActivity;
初始化SDK,並檢查Key的合法性;
SDKInitializer.initialize(getApplicationContext());
checkKEY();
備註:該兩句話必須放在setContentView()之前。
初始化BaiMap對象;
Map = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.fragment_poi_map)).getBaiMap();
初始化PoiSearch對象;
PoiSearch.newInstance();
給PoiSearch對象設置監聽器;
(),重寫onGetPoiResult()方法;
自定義PoiOverlay類,實現對每個標記的單擊監聽;
通過onPoiClick()方法,獲取每個PoiInfo中的信息。如果這個對象中包含有明細,可以打開一個新頁面來展示興趣點的詳細介紹。
在AndroidManifest.xml文件中配置PlaceCaterActivity頁面;
該頁面是Bai提供的POI的明細介紹頁面。
PoiSearch對象調用searchInBound()、searchInCity() 、 searchNearby()方法實現興趣點查詢。
【總結:】核心步驟:
實例化BaiMap,PoiSearch對象;
PoiSearch對象設置OnGetPoiSearchResultListener()監聽;
PoiSearch對象調用searchInCity()方法觸發監聽。
(四)、線路規劃:
1、實現路線規劃的操作步驟:
布局文件中使用MapView,用來實現對BaiMap的載入;
初始化SDK,並檢查Key的合法性;
SDKInitializer.initialize(getApplicationContext());
checkKEY();
初始化MapView;
調用findViewById()
初始化BaiMap對象;
Map = MapView對象.getMap();
初始化RoutePlanSearch對象;
RoutePlanSearch.newInstance();
給RoutePlanSearch對象設置監聽器;
(),重寫onGetWalkingRouteResult()、onGetTransitRouteResult()、onGetDrivingRouteResult()方法;
自定義三種RouteOverlay類(WalkingRouteOverlay、TransitRouteOverlay、DrivingRouteOvelray);
調用RoutePlanSearch對象的三種方法(drivingSearch()、transitSearch()、walkingSearch())實現路線規劃。
【總結:】核心步驟:
實例化BaiMap,RoutePlanSearch對象;
RoutePlanSearch對象設置OnGetRoutePlanResultListener監聽;
RoutePlanSearch對象調用drivingSearch()、transitSearch()、walkingSearch()方法觸發監聽。
(五)、公交查詢:
1、實現公交查詢的操作步驟:
布局文件中使用fragment,用來實現對BaiMap的載入;
class="com..mapapi.map.SupportMapFragment"
初始化SDK,並檢查Key的合法性;
SDKInitializer.initialize(getApplicationContext());
checkKEY();
當前Activity繼承於FragementActivity;
初始化BaiMap對象;
Map = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.fragment_poi_map)).getBaiMap();
初始化PoiSearch對象/初始化BusLineSearch對象;
PoiSearch.newInstance();
BusLineSearch.newInstance();
給BusLineSearch對象設置監聽器;
(),重寫onGetBusLineResult()方法;
給PoiSearch對象設置監聽器;
(),重寫onGetPoiResult()方法;
在這個監聽器中調用BusLineSearch對象的searchBusLine()方法;
給按鈕增加單擊監聽事件,實現PoiSearch對象的searchInBound()、searchInCity() 、 searchNearby()方法實現興趣點查詢。
【總結:】核心步驟:
實例化BaiMap、PoiSearch對象及BusLineSearch對象;
PoiSearch對象設置OnGetPoiSearchResultListener()監聽;BusLineSearch對象設置監聽;
在PoiSearch對象的監聽回調方法onGetPoiResult()中調用busLineSearch對象的searchBusLine()方法;
PoiSearch對象調用searchInCity()方法觸發整個監聽。

【備註:】
整體思路:先調用POI查詢,在POI查詢中的監聽器中執行BusLine查詢。

閱讀全文

與androidgis開發相關的資料

熱點內容
蝦米伺服器關閉如何找到以前的歌 瀏覽:12
php自動建站 瀏覽:471
命令與征服3游俠網 瀏覽:966
騰訊雲買哪個地區伺服器 瀏覽:244
香港哪裡有app賣內地零食 瀏覽:674
編譯內核找不到工具鏈 瀏覽:447
java常見模式 瀏覽:500
典欣空調壓縮機 瀏覽:421
app如何認定許可權 瀏覽:853
兩個復數相除的角度計演算法則 瀏覽:588
電商類app開發怎麼收費 瀏覽:304
打造電子書反編譯工具 瀏覽:76
壓縮比115 瀏覽:562
pdf怎麼摳圖 瀏覽:870
霍妮pdf 瀏覽:810
反編譯VMP 瀏覽:49
hello編譯器 瀏覽:773
apk程序加密 瀏覽:597
如何給app重命名 瀏覽:606
怎麼幽默調侃程序員 瀏覽:288