高德地圖api之自定義載入地圖
高德地圖api有幾大功能模組:Amap,Location,Search,OfflineMap
首先我們檢視文件,並匯入Demo專案來學習一下basic map功能:
首先有幾個重要的類:
開啟jar package(Android_Map_V2.jar)中的package(com.amap.api.maps)有Amap,MapFragment,SupportMapFragment,MapView,Projection等重要的類。
首先我們要清楚Amap是高德地圖的核心,其提供了map服務,為MapView和Frament(SupportFragment)是載入map的元件:
我們通過一個基本案例來學習如何載入map:
step1:
編寫AndroidManiFest配置文件:
- <span style="font-size:18px;"> <meta-data
- android:name="com.amap.api.v2.apikey"
- android:value="d460709e9d9db7763284e31fc95cdc36" /></span>
這一步就是將你為你的apps申請的api key應用到這個配置文件中;
step 2:
原始碼複製列印關於-
<?xml version="1.0"
- <fragment
- android:id="@+id/map"
- android:name="com.amap.api.maps.SupportMapFragment"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
這是自定義佈局xml中的關鍵載入map的UI元件,用來顯示map;
step 3:
-
<span style="font-size:18px;">aMap = ((SupportMapFragment) getSupportFragmentManager()
- .findFragmentById(R.id.map)).getMap();</span>
這一步是在程式碼中呼叫getSupportFragmentManager.findFragmentById().getMap()方法讓Fragment來顯示map服務提供的地圖。
這樣簡單地三步就可以在應用中載入最簡單的basic map了
Basic Map截圖如下:
由於有的到時候我們檢視興趣點需要一些清晰的基本資訊,所以接下來我們來檢視如何給指定地點新增一些標記(Marker):
關鍵程式碼如下:
原始碼複製列印關於- aMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById
- (R.id.map)).getMap();
- LatLng marker1 = new LatLng(39.24426, 100.18322);
- aMap.addMarker(new MarkerOptions().position(marker1).title("Marker1 ")
- .icon(BitmapDescriptorFactory
- .defaultMarker(BitmapDescriptorFactory.HUE_AZURE)).draggable(true));
標記累MarKerOptions的幾個引數解釋如下:
position:設定要設定標記的興趣點的位置;
title:點選興趣點是提示的標題
snippet:點選興趣點是提示框的具體內容
draggable:設定興趣點是否可以拖拽
icon:設定興趣點的圖示
關於icon這個引數,須通過過BitmapDescriptorfactory類來設定,汽油機中方法:
1 .defaultMarker()方法,Amap預設為我們提供了十個常量圖示;
2 .FromResource()方法,從專案資源載入圖示;
3 .FromAsset()方法,從生檔案中載入;
4 .FromFile(String path)方法,從具體檔案中載入;
5 .FromBitMap()方法,使用點陣圖像;
這樣我們就為我們需要加標記的興趣點加了自定義的標記。
標記功能截圖如下:
1
對於Basic Map中的新增Marker我們有一些事件處理:
- 點選標記事件
- 拖動標記事件
- 點選資訊視窗
1 OnMarkerClickListener(OnMarkerClick)
2 OnMarkerDragListener(OnMarkerDrag)
3 OnInfoWindowClickListener(OnInfoWindowClick)
再從剛才的例子中獲取對於白標記點選時間的處理:
- <span style="font-size:18px;">defaultMarker = aMap.addMarker(new MarkerOptions()
- .position(Constants.FANGHENG).title("方恆").snippet("方恆國際中心大樓A座")
- .icon(BitmapDescriptorFactory.defaultMarker()));
- aMap.getUiSettings().setZoomControlsEnabled(true);// 設定系統預設縮放按鈕可見
- aMap.setOnMarkerClickListener(this);// 對marker新增點選監聽器</span>
- <span style="font-size:18px;"> @Override
- publicboolean onMarkerClick(Marker marker) {
- if (marker.equals(defaultMarker)) {
- ToastUtil.show(BasicMapActivity.this, marker.getSnippet());
- }
- returnfalse;
- }</span>
點選截圖:
除了處理點選事件外,Amap還有一些常用的方法和時間處理:
1 比例尺:
- <span style="font-size:18px;">publicvoid getScale(View v) {
- float scale = aMap.getScalePerPixel();
- Toast.makeText(BasicMapActivity.this, "每畫素代表" + scale + "米",
- Toast.LENGTH_SHORT).show();
- }
- }
- </span>
呼叫amp.getScalePerPixer()方法來獲得比例尺;
2 處理截圖事件:
- <span style="font-size:18px;">publicvoid getMapScreenShot(View v) {
- aMap.getMapPrintScreen(new AMap.onMapPrintScreenListener() {
- @Override
- publicvoid onMapPrint(Drawable r) {
- Bitmap bitmap = ((BitmapDrawable) r).getBitmap();
- try {
- FileOutputStream fos = new FileOutputStream(Environment
- .getExternalStorageDirectory()
- + "/test_"
- + sdf.format(new Date()) + ".png");
- boolean b = bitmap.compress(CompressFormat.PNG, 100, fos);
- try {
- fos.flush();
- } catch (IOException e) {
- e.printStackTrace();
- }
- try {
- fos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- if (b)
- Toast.makeText(BasicMapActivity.this, "截圖成功",
- Toast.LENGTH_SHORT).show();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- }
- });
- }</span>
呼叫amp.getMapPrintScreen()方法來獲得截圖,而引數就是AMap.OnMapPrintScreenListener{onMapPrintSceen()},這樣就可以處理截圖事件.
截圖之後將會把截圖圖儲存制定的檔案:
相關推薦
高德地圖api之自定義載入地圖
高德地圖api有幾大功能模組:Amap,Location,Search,OfflineMap 首先我們檢視文件,並匯入Demo專案來學習一下basic map功能: 首先有幾個重要的類: 開啟jar package(Android_Map_V2.jar)中的packag
Arcgis Server for JavaScript API之自定義InfoWindow
各位看到這個標題不要嫌煩,因為本人最近一直在研究相關的問題,所以相關文章也只能是這些,同時希望看過我的文章的朋友,我的文章能夠給你幫助。 在前面的兩篇相關的文章裡面,實現InfoWindow是通過div的東西實現的,本文要講的是通過整合InfoWindowBase實現infowindow的。實現後Inf
iOS開發之自定義載入等待框(MBProgressHUD)
原文地址:http://blog.csdn.net/ryantang03/article/details/7877120 MBProgressHUD是一個開源專案,實現了很多種樣式的提示框,使用上簡單、方便,並且可以對顯示的內容進行自定義,功能很強大,很多專案中都有
(三)高德地圖之自定義縮放及縮放動畫效果
這一節主要實現的功能是地圖的自定義縮放及縮放的動畫效果,還是直接放上程式碼更直觀些,主要部位裡面基本有註解 還是老樣子,首先是新建activity_zoom_animate.xml佈局檔案 <?xml version="1.0" encoding="utf-8"?> <
高德地圖api之location定位
關於定位,分為GPS定位和網路定位。本文將詳細描述的瀏覽器定位,屬於網路定位。這是一種通過使用高德JS-API來實現位置定位、城市定位的方法,包含了IP定位,檢索等多種網路定位方式。如果您的手機支援GPS功能,能夠自動獲取GPS資訊,定位將更加準確。 瀏覽器定位 瀏覽器定位外掛,
基於高德地圖實現完全自定義Marker
做地圖社交類APP開發的都知道,一般情況下,為了整體的美觀和使用者體驗度,我們需要定製化Marker的樣式。本文中實現的方式都是基於高德地圖的,百度地圖也類似,大家可以照葫蘆畫瓢,廢話不多說,先來看看最終效果: 實現思路: 先來看看高德官方提供的設
百度地圖JavaScript API 學習之自定義標註圖示(二)
地圖繪製之新增自定義標註圖示(二) 官方提供了兩種方法來自定義標註圖示: 通過引數MarkerOptions的icon屬性進行設定 使用Marker.setIcon()方法。 第二
高德地圖-添加自定義圖標
click 的人 icon 100% text 我們 posit cti user 1、問題背景 這裏有張武漢市地圖,點擊按鈕在地圖上指定經度、緯度下添加小圖標 2、實現源碼 <!DOCTYPE html> <html> <
SSM-SpringMVC-24:SpringMVC異常高級之自定義異常
BE request input suffix super() internal except simple res ------------吾亦無他,唯手熟爾,謙卑若愚,好學若饑------------- 自定義異常,大家都會,對吧,無非就是繼承異常類等操作,
kubernetes學習筆記之十二:資源指標API及自定義指標API
第一章、前言 以前是用heapster來收集資源指標才能看,現在heapster要廢棄了從1.8以後引入了資源api指標監視 資源指標:metrics-server(核心指標) 自定義指標:prometheus,k8s-prometheus-adapter(將Prometheus採集的資料轉換為指
arcgis api for js之自定義範圍查詢
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>自定義範圍</title> <!-
【高德地圖API】從零開始學高德JS API(七)——定位方式大揭祕
摘要:關於定位,分為GPS定位和網路定位2種。GPS定位,精度較高,可達到10米,但室內不可用,且超級費電。網路定位,分為wifi定位和基站定位,都是通過獲取wifi或者基站資訊,然後查詢對應的wifi或者基站位置資料庫,得到的定位地點。定位資料庫可以不斷完善不斷補充,所以,
ArcGIS載入高德、OSM和谷歌等地圖
1. 引言 網路地圖對於我們來說已經不是什麼新鮮事了,上面有各大網際網路公司收集的海量的地理空間資料。一般網路地圖的地圖是以切片形式存在的,因此,本文重點講述如何將這些網路切片地圖載入並顯示再ArcGIS中。 其實ArcGIS自帶了網路地圖載入功能,File->Add Data->
利用百度API將自定義的點標註在百度地圖上
有時候我們需要將自定義的點的資訊標註在地圖上,正好最近用到了這個功能,網上學習百度API後,也已經實現,現在在這做一個總結。 1.實現過程 要使用百度API,我們首先需要得到一個金鑰(ak),這個可以免費申請,具體申請流程在這就不贅述了。 現在詳細介紹下實
iOS開發之百度地圖大頭針的自定義解決方法
方法1 - (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>
Android UI 之自定義RadarView——高仿微信雷達掃描
最近看了一個視訊講了一種微信雷達掃描的實現方案,借鑑了一下,自己也寫一個玩玩,與大家分享一下。基本想出來三種解決方案,根據不同需求情況選擇即可。 方案一實現思路(通用): 1.自定義view 2.重寫onDraw()方法 3.畫四個無鋸齒空心圓 4.畫以最大圓為半徑的實心漸變圓 5.建立矩陣,旋轉畫布,
轉載:高德地圖API學習 從零開始學高德JS API(一)地圖展現
摘要:關於地圖的顯示,我想大家最關心的就是麻點圖,自定義底圖的解決方案了吧。在過去,marker大於500之後,瀏覽器開始逐漸卡死,大家都開始尋找解決方案,比如聚合marker啊,比如麻點圖啊。聚合marker裡面還有一些複雜的演算法,而麻點圖,最讓大家頭疼的,就是如何生成麻點圖,如何切圖,如何把圖片貼到地圖
python之自定義異步IO客戶端
class close sel 封裝 [0 urn 簡單 pytho syn #!/usr/bin/env python # -*- coding: utf8 -*- # __Author: "Skiler Hao" # date: 2017/5/16 15:04
Hadoop實戰-Flume之自定義Sink(十九)
current ioe back urn oop print out java try import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream;
C#之自定義特性
創建 tip comm 字段 運算符 包含 自動 名稱 程序 在前面介紹的代碼中有使用特性,這些特性都是Microsoft定義好的,作為.NET Framework類庫的一部分,許多特性都得到了C#編譯器的支持。 .NET Frmework也允許定義自己的特性。自