前言
在地圖應(yīng)用中加缘,Overlay
(覆蓋層)是指在地圖圖層之上疊加顯示的額外信息層。這些覆蓋層可以用來展示各種數(shù)據(jù)闯第,如交通狀況、用戶位置缀拭、興趣點(diǎn)(POI)等咳短。在高德地圖SDK中,可以使用多種類型的覆蓋層來增強(qiáng)地圖的功能和視覺效果蛛淋。文本介紹簡單的點(diǎn)線面和文本覆蓋物使用方法和屬性咙好。
地圖類中覆蓋物的接口
類型 |
方法 |
說明 |
Marker |
addMarker (MarkerOptions options) |
在地圖上添一個圖片標(biāo)記(marker)對象。 |
ArrayList< Marker > |
addMarkers (ArrayList< MarkerOptions > options, boolean moveToCenter) |
在地圖上添一組圖片標(biāo)記(marker)對象铣鹏,并設(shè)置是否改變地圖狀態(tài)以至于所有的marker對象都在當(dāng)前地圖可視區(qū)域范圍內(nèi)顯示敷扫。 |
Polyline |
addPolyline (PolylineOptions options) |
在地圖上添加一個折線對象(polyline)對象哀蘑。 |
Polygon |
addPolygon (PolygonOptions options) |
在地圖上添加一個多邊形(polygon)對象诚卸。 |
Arc |
addArc (ArcOptions options) |
在地圖上添加一個圓豢凇(arc)對象。 |
Circle |
addCircle (CircleOptions options) |
在地圖上添加一個圓(circle)對象合溺。 |
Text |
addText (TextOptions options) |
在地圖上添一個文字標(biāo)記(text)對象卒密。 |
類型 |
方法 |
說明 |
void |
clear () |
從地圖上刪除所有的overlay(marker,circle棠赛,polyline 等對象)哮奇。 |
void |
clear (boolean isKeepMyLocationOverlay) |
從地圖上刪除所有的覆蓋物(marker,circle睛约,polyline 等對象)鼎俘,<br />但myLocationOverlay(內(nèi)置定位覆蓋物)除外。 |
覆蓋物類
類型 |
說明 |
覆蓋物類 |
選項(xiàng) |
點(diǎn) |
定義地圖 Marker 覆蓋物辩涝。<br />Marker 是在地圖上的一個點(diǎn)繪制圖標(biāo)贸伐。<br />這個圖標(biāo)和屏幕朝向一致,和地圖朝向無關(guān)怔揩,也不會受地圖的旋轉(zhuǎn)捉邢、傾斜、縮放影響商膊。 |
Marker |
MarkerOptions |
折線 |
定義地圖線段覆蓋物伏伐。一個線段是多個連貫點(diǎn)的集合線段。 |
Polyline |
PolylineOptions |
多邊形 |
定義在地圖上繪制多邊形覆蓋物晕拆。一個多邊形可以凸面體藐翎,也可是凹面體。 |
Polygon |
PolygonOptions |
弧線 |
定義了在地圖上繪制弧形的類实幕。 |
Arc |
ArcOptions |
圓 |
定義了在地圖上繪制圓的類阱高。 |
Circle |
CircleOptions |
文本 |
定義在地圖中繪制的文字覆蓋物。 |
Text |
TextOptions |
Marker示例
// 定義Maker坐標(biāo)點(diǎn)
LatLng point = new LatLng(39.963175, 116.400244);
// 構(gòu)建Marker圖標(biāo)
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.drawable.icon_mark_a);
// 構(gòu)建MarkerOption茬缩,用于在地圖上添加Marker
MarkerOptions option = new MarkerOptions()
.position(point)
.icon(bitmap);
// 在地圖上添加Marker赤惊,并顯示
Marker marker = map.addMarker(option);
Polyline示例
// 構(gòu)建折線點(diǎn)坐標(biāo)
LatLng p1 = new LatLng(39.97923, 116.357428);
LatLng p2 = new LatLng(39.94923, 116.397428);
LatLng p3 = new LatLng(39.97923, 116.437428);
List<LatLng> points = new ArrayList<>();
points.add(p1);
points.add(p2);
points.add(p3);
// 設(shè)置折線的屬性
PolylineOptions polylineOptions = new PolylineOptions()
.width(10)
.color(0xAA00FF00)
.addAll(points);
// 在地圖上繪制折線
Polyline polyline = map.addPolyline(polylineOptions);
Polygon示例
// 多邊形頂點(diǎn)位置
List<LatLng> points = new ArrayList<>();
points.add(new LatLng(39.93923, 116.357428));
points.add(new LatLng(39.91923, 116.327428));
points.add(new LatLng(39.89923, 116.347428));
points.add(new LatLng(39.89923, 116.367428));
points.add(new LatLng(39.91923, 116.387428));
// 構(gòu)造PolygonOptions
PolygonOptions polygonOptions = new PolygonOptions()
.addAll(points)
.fillColor(0xAAFFFF00) // 填充顏色
.strokeColor(0xAA00FF00) // 邊框顏色
.strokeWidth(5); // 邊框?qū)挾?
// 在地圖上顯示多邊形
Polygon polygon = map.addPolygon(polygonOptions);
Arc示例
// 添加弧線坐標(biāo)數(shù)據(jù)
LatLng p1 = new LatLng(39.97923, 116.357428); // 起點(diǎn)
LatLng p2 = new LatLng(40.00923, 116.397428); // 中間點(diǎn)
LatLng p3 = new LatLng(39.97923, 116.437428); // 終點(diǎn)
// 構(gòu)造ArcOptions對象
ArcOptions arcOptions = new ArcOptions()
.strokeColor(Color.RED)
.strokeWidth(10)
.point(p1, p2, p3);
// 在地圖上顯示弧線
Arc arc = map.addArc(arcOptions);
Circle示例
// 圓心位置
LatLng center = new LatLng(39.90923, 116.447428);
// 構(gòu)造CircleOptions對象
CircleOptions circleOptions = new CircleOptions()
.center(center)
.radius(1400)
.fillColor(0xAAFFFF00) // 填充顏色
.strokeColor(0xAA00ff00) // 邊框顏色
.strokeWidth(5); // 邊框?qū)?
// 在地圖上顯示圓
Circle circle = map.addCircle(circleOptions);
移除示例
// 從地圖上刪除所有的覆蓋物(marker,circle凰锡,polyline 等對象)未舟,
// 但myLocationOverlay(內(nèi)置定位覆蓋物)除外。
boolean isKeepMyLocationOverlay = true;
map.clear(isKeepMyLocationOverlay);
效果圖
Marker的更多屬性
Marker
有如下屬性:
- 錨點(diǎn):圖標(biāo)擺放在地圖上的基準(zhǔn)點(diǎn)掂为。默認(rèn)情況下裕膀,錨點(diǎn)是從圖片下沿的中間處。
- 位置:
Marker
是通過經(jīng)緯度的值來標(biāo)注在地圖上的勇哗。
- 標(biāo)題:當(dāng)點(diǎn)擊
Marker
顯示在信息窗口的文字昼扛,隨時可以更改。
- 片段:除了標(biāo)題外其他的文字,隨時可以更改抄谐。
- 圖標(biāo):
Marker
顯示的圖標(biāo)渺鹦。如果未設(shè)置圖標(biāo),API 將使用默認(rèn)的圖標(biāo)蛹含,高德為默認(rèn)圖標(biāo)提供了10 種顏色備選毅厚。默認(rèn)情況下垮刹,Marker
是可見的匾嘱』莶颍可隨時更改Marker
的可見性痰娱。
常用屬性
類型 |
方法 |
說明 |
MarkerOptions |
icon (BitmapDescriptor icon) |
設(shè)置Marker覆蓋物的圖標(biāo)滩字。 |
MarkerOptions |
position (LatLng position) |
設(shè)置Marker覆蓋物的位置坐標(biāo)贫橙。 |
MarkerOptions |
alpha (float alpha) |
設(shè)置Marker覆蓋物的透明度 |
MarkerOptions |
perspective (boolean perspective) |
已過時遂跟。 |
MarkerOptions |
draggable (boolean enable) |
設(shè)置Marker覆蓋物是否可拖拽衔掸。 |
MarkerOptions |
setFlat (boolean flat) |
設(shè)置Marker覆蓋物是否平貼地圖蓬推。 |
MarkerOptions |
anchor (float u, float v) |
設(shè)置Marker覆蓋物的錨點(diǎn)比例板乙。 |
MarkerOptions |
rotateAngle (float rotate) |
設(shè)置Marker覆蓋物的圖片旋轉(zhuǎn)角度,從正北開始拳氢,逆時針計(jì)算募逞。 |
MarkerOptions |
visible (boolean visible) |
設(shè)置Marker覆蓋物是否可見。 |
交互
啟用允許拖拽時馋评,在拖拽Marker
時放接,會回調(diào)AMap.OnMarkerDragListener
。
類型 |
方法 |
說明 |
MarkerOptions |
draggable (boolean enable) |
設(shè)置Marker覆蓋物是否可拖拽留特。 |
動畫
- SDK提供了給
Marker
增加幀動畫的功能纠脾,通過MarkerOptions
類來設(shè)置,一次傳入一個Icon列表蜕青,通過period
設(shè)定刷新的幀間隔苟蹈。
- 自地圖 SDK V4.0.0 版本起,SDK 提供了給
Marker
設(shè)置動畫的方法右核。通過Marker
類setAnimation
方法設(shè)置慧脱。
類型 |
方法 |
說明 |
MarkerOptions |
icons (ArrayList< BitmapDescriptor > icons) |
設(shè)置Marker覆蓋物的動畫幀圖標(biāo)列表,多張圖片模擬gif的效果贺喝。 |
MarkerOptions |
period (int period) |
設(shè)置多少幀刷新一次圖片資源菱鸥,Marker動畫的間隔時間,值越小動畫越快躏鱼。 |
其它屬性
類型 |
方法 |
說明 |
MarkerOptions |
title (String title) |
設(shè)置 Marker覆蓋物 的標(biāo)題 |
MarkerOptions |
snippet (String snippet) |
設(shè)置 Marker覆蓋物的 文字描述 |
MarkerOptions |
infoWindowEnable (boolean enabled) |
設(shè)置Marker覆蓋物的InfoWindow是否允許顯示,默認(rèn)為true |
MarkerOptions |
setInfoWindowOffset (int offsetX, int offsetY) |
設(shè)置Marker覆蓋物的InfoWindow相對Marker的偏移氮采。 |
MarkerOptions |
altitude (float altitude) |
marker的海拔 |
MarkerOptions |
zIndex (float zIndex) |
設(shè)置Marker覆蓋物 zIndex。 |
MarkerOptions |
setGps (boolean isGps) |
設(shè)置Marker覆蓋物的坐標(biāo)是否是Gps染苛,默認(rèn)為false鹊漠。 |
折線的更多屬性
地圖線段覆蓋物。一個線段是多個連貫點(diǎn)的集合線段。它擁有以下屬性:
- 頂點(diǎn):線段是由兩個頂點(diǎn)之間連貫的點(diǎn)構(gòu)成的躯概。如果兩個頂點(diǎn)相同登钥,則一個線段將閉合。
- 寬度:寬度是單位是像素楞陷。寬度是可視區(qū)域的縮放級別無關(guān)。默認(rèn)為10茉唉。
- 顏色:線段的顏色是ARGB格式固蛾,顏色格式可以參考
Color
。默認(rèn)是黑色(0xff000000)度陆。
- Z軸:Z軸是控制地圖覆蓋物之間的繪制層次的參數(shù)艾凯。這個參數(shù)能夠控制
Circles
、Polygons
懂傀、Polyline
的繪制層次趾诗,但不會影響Marker
。 Z軸數(shù)值越大的覆蓋物將會繪制在更上層蹬蚁。如果兩個及兩個以上覆蓋物的Z軸數(shù)值相同恃泪,則最后的繪制結(jié)果是隨機(jī)的。 覆蓋物的Z軸默認(rèn)為0犀斋。
- 可見:這個屬性表示了線段是否可以顯示在地圖上贝乎。如果設(shè)置為不可見,則繪制地圖時不會繪制此線段叽粹,但其他屬性不受影響览效。默認(rèn)為可見。
常用屬性
類型 |
方法 |
說明 |
PolylineOptions |
width (float width) |
設(shè)置線段的寬度虫几,默認(rèn)為10锤灿。 |
PolylineOptions |
color (int color) |
設(shè)置線段的顏色,需要傳入32位的ARGB格式辆脸。 |
PolylineOptions |
transparency (float transparency) |
設(shè)置線段的透明度0~1但校,默認(rèn)是1,1表示不透明 |
PolylineOptions |
add (LatLng... points) |
追加一批頂點(diǎn)到線段的坐標(biāo)集合。 |
PolylineOptions |
add (LatLng point) |
追加一個頂點(diǎn)到線段的坐標(biāo)集合啡氢。 |
PolylineOptions |
addAll (Iterable< LatLng > points) |
追加一批頂點(diǎn)到線段的坐標(biāo)集合始腾。 |
PolylineOptions |
colorValues (List< Integer > colors) |
設(shè)置線段的顏色 |
PolylineOptions |
setCustomTexture (BitmapDescriptor customTexture) |
設(shè)置線段的紋理圖,圖片為2的n次方空执。 |
PolylineOptions |
setCustomTextureList (List< BitmapDescriptor > customTextureList) |
設(shè)置線段紋理list |
PolylineOptions |
setCustomTextureIndex (List< Integer > custemTextureIndexs) |
設(shè)置線段紋理index數(shù)組 |
PolylineOptions |
setUseTexture (boolean useTexture) |
設(shè)置是否使用紋理貼圖畫線浪箭。 |
PolylineOptions |
visible (boolean isVisible) |
設(shè)置線段的可見性。 |
PolylineOptions |
setDottedLine (boolean isDottedLine) |
設(shè)置是否畫虛線辨绊,默認(rèn)為false奶栖,畫實(shí)線。 |
PolylineOptions |
setDottedLineType (int type) |
設(shè)置虛線形狀。 |
其它屬性
類型 |
方法 |
說明 |
PolylineOptions |
geodesic (boolean isGeodesic) |
設(shè)置線段是否為大地曲線宣鄙,默認(rèn)false袍镀,不畫大地曲線。 |
PolylineOptions |
useGradient (boolean useGradient) |
設(shè)置線段是否使用漸變色 |
PolylineOptions |
setEraseColor (boolean eraseVisible, int eraseColor) |
設(shè)置線段擦除(顯示范圍外)顏色冻晤,需要傳入32位的ARGB格式苇羡,針對顏色線段生效。 |
PolylineOptions |
lineCapType (PolylineOptions.LineCapType lineCapType) |
設(shè)置Polyline尾部形狀 |
PolylineOptions |
lineJoinType (PolylineOptions.LineJoinType lineJoinType) |
設(shè)置Polyline連接處形狀 |
PolylineOptions |
zIndex (float zIndex) |
設(shè)置線段Z軸的值鼻弧。 |
多邊形的更多屬性
多邊形覆蓋物设江。一個多邊形可以凸面體,也可是凹面體攘轩。它有以下屬性:
- 邊框:一個多邊開的邊框由一系列的順時針或逆時針頂點(diǎn)組成叉存。邊框不需要聲明起點(diǎn)和終點(diǎn)一致。如果邊框的起點(diǎn)與終點(diǎn)不一致度帮,API會自動將它封閉歼捏。
- 邊框?qū)挾龋哼吙虻膶挾纫韵袼貫閱挝唬粫芸梢晠^(qū)域縮放級別的影響笨篷。默認(rèn)為10瞳秽。
- 邊框顏色:邊框顏色是一個
ARGB
格式,ARGB請參考android.graphics.Color
率翅。默認(rèn)為黑色寂诱。
- 填充顏色:填充顏色是一個
ARGB
格式,ARGB格式可參考android.graphics.Color
安聘。默認(rèn)是透明的痰洒。如果多邊形的幾何圖形不正確,則填充顏色不會被繪制浴韭。
- Z軸:Z軸是控制覆蓋物重復(fù)區(qū)域的繪制順序的值丘喻。Z軸較大的覆蓋物會在繪制在Z軸較小的覆蓋物上面。如果兩個覆蓋物的Z軸數(shù)值相同念颈,則覆蓋情況將隨機(jī)泉粉。默認(rèn)為0。
- 可見性:標(biāo)示多邊形是否可見榴芳。如果可見性為否嗡靡,則不會被繪制。
多邊形方法必須在主線程中調(diào)用窟感,否則會拋出IllegalStateException
讨彼。
常用屬性
類型 |
方法 |
說明 |
PolygonOptions |
strokeColor (int paramInt) |
設(shè)置多邊形的邊框顏色,32位 ARGB格式柿祈,默認(rèn)為黑色哈误。 |
PolygonOptions |
strokeWidth (float paramFloat) |
設(shè)置多邊形的邊框?qū)挾攘ㄖ粒瑔挝唬合袼亍?/td>
|
PolygonOptions |
fillColor (int paramInt) |
設(shè)置多邊形的填充顏色,32位ARGB格式蜜自。 |
PolygonOptions |
add (LatLng... paramArrayOfLatLng) |
添加多個多邊形邊框的頂點(diǎn) |
PolygonOptions |
add (LatLng paramLatLng) |
添加一個多邊形邊框的頂點(diǎn) |
PolygonOptions |
addAll (Iterable< LatLng > paramIterable) |
添加多個多邊形邊框的頂點(diǎn) |
其它屬性
類型 |
方法 |
說明 |
PolygonOptions |
addHoles (BaseHoleOptions... paramArrayOfOptions) |
設(shè)置空心洞的配置項(xiàng) |
PolygonOptions |
addHoles (Iterable paramIterable) |
添加空心洞的配置項(xiàng) |
PolygonOptions |
visible (boolean paramBoolean) |
設(shè)置多邊形是否可見菩貌。 |
PolygonOptions |
zIndex (float paramFloat) |
設(shè)置多邊形的Z軸數(shù)值 |
PolygonOptions |
lineJoinType (AMapPara.LineJoinType lineJoinType) |
設(shè)置邊框連接處形狀 |
Arc的更多屬性
弧形的類。它有以下屬性:
- 邊框?qū)挾龋夯⌒芜吙虻膶挾戎剀_@個值設(shè)置后不會受到可視區(qū)域縮放級別的影響箭阶。默認(rèn)為10。
- 邊框顏色:邊框顏色是一個
ARGB
格式戈鲁,ARGB
請參考android.graphics.Color
仇参。默認(rèn)為黑色。
- Z軸:Z軸是控制覆蓋物重復(fù)區(qū)域的繪制順序的值荞彼。Z軸較大的覆蓋物會繪制在Z軸較小的覆蓋物上面冈敛。如果兩個覆蓋物的Z軸數(shù)值相同待笑,則覆蓋情況將隨機(jī)鸣皂。默認(rèn)值為0。
- 可見性:標(biāo)示弧形是否可見暮蹂。如果可見性為否寞缝,則不會被繪制。
弧形方法必須在主線程中調(diào)用仰泻,否則會拋出IllegalStateException
荆陆。
類型 |
方法 |
說明 |
ArcOptions |
strokeColor (int color) |
設(shè)置弧形邊框顏色參數(shù),ARGB格式集侯。 |
ArcOptions |
strokeWidth (float width) |
設(shè)置弧形邊框?qū)挾葏?shù)被啼,單位:像素。 |
ArcOptions |
point (LatLng startpoint, LatLng passedpoint, LatLng endpoint) |
設(shè)置弧線的起終點(diǎn)和途徑點(diǎn)棠枉。 |
ArcOptions |
visible (boolean visible) |
設(shè)置弧形是否可見參數(shù)浓体。 |
ArcOptions |
zIndex (float zIndex) |
設(shè)置弧形Z軸數(shù)值參數(shù),默認(rèn)為0辈讶。 |
Circle的更多屬性
圓對象有以下屬性:
- 圓心 :圓心的經(jīng)緯度命浴。
- 半徑: 圓的半徑,單位:米贱除。這個值應(yīng)該大于等于0生闲。
- 邊框?qū)挾龋?圓的邊框?qū)挾取_@個值設(shè)置后不會受到可視區(qū)域縮放級別的影響月幌。默認(rèn)為10碍讯。
- 邊框顏色:圓的邊框顏色,
ARGB
格式扯躺。默認(rèn)為黑色冲茸。
- 填充顏色:圓的填充顏色屯阀,
ARGB
格式。默認(rèn)為透明轴术。
- Z軸:Z軸是控制覆蓋物重復(fù)區(qū)域的繪制順序的值难衰。Z軸較大的覆蓋物會繪制在Z軸較小的覆蓋物上面。如果兩個覆蓋物的Z軸數(shù)值相同逗栽,則覆蓋情況將隨機(jī)盖袭。默認(rèn)值為0。
- 可見屬性:標(biāo)識多邊形是否可見彼宠。如果可見性為否鳄虱,則不會被繪制。
圓形方法必須在主線程中調(diào)用凭峡,否則會拋出IllegalStateException
拙已。
類型 |
方法 |
說明 |
CircleOptions |
radius (double radius) |
設(shè)置圓的半徑,單位米摧冀。 |
CircleOptions |
fillColor (int color) |
設(shè)置圓的填充顏色倍踪。 |
CircleOptions |
strokeColor (int color) |
設(shè)置圓的邊框顏色,ARGB格式索昂。 |
CircleOptions |
strokeWidth (float width) |
設(shè)置圓的邊框?qū)挾冉ǔ担瑔挝幌袼亍?/td>
|
CircleOptions |
setStrokeDottedLineType (int type) |
設(shè)置圓的邊框虛線形狀。 |
CircleOptions |
center (LatLng point) |
設(shè)置圓心經(jīng)緯度坐標(biāo)椒惨。 |
CircleOptions |
addHoles (BaseHoleOptions... paramArrayOfOptions) |
添加空心洞的配置項(xiàng) |
CircleOptions |
addHoles (Iterable paramIterable) |
添加空心洞的配置項(xiàng) |
CircleOptions |
visible (boolean visible) |
設(shè)置圓的可見屬性 |
CircleOptions |
zIndex (float zIndex) |
設(shè)置圓的Z軸數(shù)值缤至,默認(rèn)為0。 |
Text的更多屬性
類型 |
方法 |
說明 |
TextOptions |
text (String text) |
設(shè)置文字覆蓋物的文字內(nèi)容康谆。 |
TextOptions |
backgroundColor (int backgroundColor) |
設(shè)置文字覆蓋物的背景顏色 |
TextOptions |
fontSize (int fontSize) |
設(shè)置文字覆蓋物字體大小 |
TextOptions |
fontColor (int fontColor) |
設(shè)置文字覆蓋物的字體顏色,默認(rèn)黑色领斥。 |
TextOptions |
rotate (float rotate) |
設(shè)置文字覆蓋物的旋轉(zhuǎn)角度,逆時針。 |
TextOptions |
position (LatLng position) |
設(shè)置文字覆蓋物的地理坐標(biāo)沃暗。 |
TextOptions |
align (int alignX, int alignY) |
設(shè)置文字覆蓋物的對齊方式,默認(rèn)居中對齊月洛。 |
TextOptions |
typeface (Typeface typeface) |
設(shè)置文字覆蓋物的字體。 |
TextOptions |
setObject (Object object) |
設(shè)置文字覆蓋物的額外信息 |
TextOptions |
visible (boolean visible) |
設(shè)置文字覆蓋物的可見性描睦。 |
TextOptions |
zIndex (float zIndex) |
設(shè)置文字覆蓋物 zIndex膊存。 |