1. 程式人生 > >實現咕咚地圖路徑顏色根據速度不同而顏色不同

實現咕咚地圖路徑顏色根據速度不同而顏色不同

先上原圖,如下:


上圖是今天早上,本人六點起來跑步的路徑示意圖,特意下載咕咚,體驗了一下這個跑步功能,重要的話說三遍,這不是廣告,這不是廣告,這不是廣告。。。

廢話不多說,通過這張圖,我們可以分析一下大概如何實現:

我是用高德地圖SDK 去實現的,看高德地圖,看到有PolylineOptions這個方法,可以把軌跡點,放入到線裡面。

1)PolylineOptions.add(LatLng point)新增點

2)PolylineOptions.(boolean useGradient) 設定是否使用漸變色

3)PolylineOptions.(java.util.List<java.lang.Integer> colors)

設定分段顏色

我們可以通過每個點,設定一個相應速度的顏色值,通過設定漸變色為true,亮點之間,就會化出一條漸變色,通過所有點連結到一起,最終實現這個效果,

顏色漸變均勻,不會出現兩個色塊突然突變的過程。

新增色值程式碼:

PolylineOptions po = new PolylineOptions();
for (int i = 0; i < mListItem.size(); i++) {
LatLng point = new LatLng(mListItem.get(i).getLattitude(), mListItem.get(i).getLongitude());
po.add(point);
colorList.add(colorList.size(), agrSpeerColorHashMap.get(Integer.parseInt(mListItem.get(i).getSpeer())));
}

po.width(12);
po.useGradient(true);
po.colorValues(colorList);
po.zIndex(10);
mAMap.addPolyline(po);

半透明背景,是新增一個Marker,給這個Marker設定圖片,設定Marker的寬高為2000公里,這樣放大縮小,感覺不出來會被拖動

mAMap.addGroundOverlay(new GroundOverlayOptions()
.position(endPoint, 2*1000*1000, 2*1000*1000)
.image(BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(this.getResources(), icon))));

最後,點選遮擋地圖,也是給上面這個半透明的Marker重新換張icon,來換切換,地圖就被擋住了。

最後效果圖,如下:


demo程式碼,在下面連結下載