2020征文-手機(jī)地圖組件TinyMap來(lái)啦!鴻蒙上第一個(gè)開(kāi)源地圖組件
想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.51cto.com/#zz
大家好!歡迎您來(lái)到51CTO鴻蒙專區(qū)。我是董昱。很榮幸成為HarmonyOS系統(tǒng)課程開(kāi)發(fā)者。
歡迎大家觀看我在51CTO中首發(fā)了我的最新免費(fèi)的視頻教程《精講鴻蒙應(yīng)用程序開(kāi)發(fā)》,并提出寶貴的意見(jiàn):
https://edu.51cto.com/course/26138.html
今天給大家介紹我自己開(kāi)發(fā)的一個(gè)鴻蒙應(yīng)用程序的地圖控件:TinyMap。大家先看看效果

因?yàn)檎搲蟼鱣if動(dòng)畫的大小的閑置,實(shí)際的效果比這個(gè)還要好一些,平移的時(shí)候如絲般順滑。
這個(gè)控件可以放置Google和高德的底圖,并且可以添加自定義的底圖元素(帶圖片的地理位置要素)
優(yōu)勢(shì):
- 開(kāi)源,方便大家學(xué)習(xí)研究
- 超級(jí)輕量化,目前僅包含3個(gè)類,適合源碼研究和學(xué)習(xí)。
- 可高德地圖和Google地圖作為地理底圖,并且可以選擇衛(wèi)星影像和矢量底圖數(shù)據(jù)。
- 可添加自定義底圖元素(Element)
部署教程:
將tinymap Module(也就是HAP)移到所需要的工程中,并且在需要調(diào)用的Module(HAP)中導(dǎo)入這個(gè)工程。 在build.gradle中插入以下代碼:
- apply plugin: 'com.huawei.ohos.hap'
- ...
- dependencies {
- ...
- implementation project(':tinymap')
- }
使用說(shuō)明
目前支持手勢(shì)滑動(dòng)平移,還不支持手勢(shì)放大和縮小(在后期會(huì)加上這個(gè)功能)。
- zoomIn()方法:縮小地圖
- zoomOut()方法:放大地圖
- refreshMap()方法:刷新地圖
- setMapSource(TinyMap.MapSource mapSource)方法:切換底圖數(shù)據(jù)源。目前底圖數(shù)據(jù)源包括5類:
- MapSource.GAODE_ROAD : 高德道路數(shù)據(jù)
- MapSource.GAODE_VECTOR : 高德矢量數(shù)據(jù)
- MapSource.GAODE_SATELLITE : 高德衛(wèi)星數(shù)據(jù)
- MapSource.GOOGLE_VECTOR : Google矢量數(shù)據(jù)
- MapSource.GOOGLE_SATELLITE : Google衛(wèi)星數(shù)據(jù)
- addElement(float x, float y, int resource)方法:添加底圖元素(目前僅支持墨卡托投影坐標(biāo),后期會(huì)添加經(jīng)緯度坐標(biāo)方法)。例如:
- addElement(12956517.35f, 4864667.87f, ResourceTable.Media_dot)
這個(gè)地圖是怎么實(shí)現(xiàn)的呢?
我通過(guò)Component組件的Canvas畫布進(jìn)行繪制的。具體大家可以看代碼,注釋啥的都有,總共也不超過(guò)1000行。
開(kāi)源地址:
https://gitee.com/dongyu1009/tiny-map-for-harmony-os
如果大家感興趣,以后會(huì)給大家介紹具體的實(shí)現(xiàn)方法。哈哈。
©著作權(quán)歸作者和HarmonyOS技術(shù)社區(qū)共同所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.51cto.com/#zz