最近项目用到了在线地图的功能,公司又不想自己在服务器发布自己的切片地图,于是只能用网上的开源地图api来实现地图需求。首先想到的就是国内的天地图,天地图是需要自己申请账号的,天地图有android端的申请,但是没有demo可以借鉴。
首先申请天地图平台账号,可以用个人的,也可以用企业的。然后添加自己的应用,需要上传sha1值。拿到申请下来的key值来拼接天地图的url。废话不多说,贴上关键代码:
val webtiledlayer = WebTiledLayer("https://t0.tianditu.gov.cn/vec_w/wmts?tk=你的天地图key&service=wmts&request=GetTile&version=1.0.0&layer=vec_c&style=default&tilematrixset=w&format=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}") val basemap = Basemap(webtiledlayer) val arcgismap = ArcGISMap(basemap) mapview.map = arcgismap
首先要使用webtiledlayer来加载天地图,不能使用arcgistiledlayer来承载天地图。arcgistiledlayer多数用来加载离线地图切片或者发布的开源MapServer网址。对于天地图这种wmts的服务需要用webtiledlayer或者自定义layer,通过http请求各级图片的byte数组来进行地图加载。
自己也搜过网上的教程,但是发现没有一个靠谱,要不就是瞎扯,要不就是拿过来根本2不管用,所以自己写了一个,基于100.15的arcgis。