arcgis runtime sdk for android 系列 - 在100.X系列中实现加载福建天地图

0
分享 2020-05-22
基本思路:

使用WebTiledLayer来加载福建天地图,要根据加载的地图获取正确的范围和比例尺。
 

关键技术点:

主体代码是参考张工加载国家天地图,需要将其中的范围改成福建正确范围。


具体实现步骤:

以这个福建天地图的地址作为下面讲解的示例:

http://service.fjmap.net/vec_fj/wmts/1.0.0/WMTSCapabilities.xml 

根据上述连接中的范围,我将范围的代码改为以下:
Envelope fullExtent = new Envelope(113.54638776785004,22.967969390150024, 121.4982643631501,29.811366914850048, SpatialReference.create(4490));


详细代码:
 
        Map<String, String> hm =  new HashMap<String, String>();
hm.put("referer","https://androidapp";);

RequestConfiguration requestConfiguration = RequestConfiguration.getGlobalRequestConfiguration();
requestConfiguration.setHeaders(hm);
RequestConfiguration.setGlobalRequestConfiguration(requestConfiguration);

        ArrayList<LevelOfDetail> levels = new ArrayList<LevelOfDetail>();

levels.add(new LevelOfDetail(7, 0.010986328125, 4617149.8915429693));
levels.add(new LevelOfDetail(8, 0.0054931640625, 2308574.9457714846));
levels.add(new LevelOfDetail(8, 0.00274658203125, 1154287.4728857423));
levels.add(new LevelOfDetail(10, 0.001373291015625, 577143.73644287116));
levels.add(new LevelOfDetail(11, 0.0006866455078125, 288571.86822143558));
levels.add(new LevelOfDetail(12, 0.00034332275390625, 144285.93411071779));
levels.add(new LevelOfDetail(13, 0.000171661376953125, 72142.967055358895));
levels.add(new LevelOfDetail(14, 8.58306884765625e-005, 36071.483527679447));
levels.add(new LevelOfDetail(15, 4.291534423828125e-005, 18035.741763839724));
levels.add(new LevelOfDetail(16, 2.1457672119140625e-005, 9017.8708819198619));
levels.add(new LevelOfDetail(17, 1.0728836059570313e-005, 4508.9354409599309));
levels.add(new LevelOfDetail(18, 5.3644180297851563e-006, 2254.4677204799655));
levels.add(new LevelOfDetail(19, 2.6822090148925781e-006, 1127.2338602399827));
levels.add(new LevelOfDetail(20, 1.3411045074462891e-006, 563.61693011999137));

int iDPI = 96;
int iTileWidth = 256;
int iTileHeight = 256;

tileInfo = new TileInfo(iDPI, TileInfo.ImageFormat.PNG, levels, new Point(-180, 90, SpatialReference.create(4490)), SpatialReference.create(4490), iTileHeight, iTileWidth);


Envelope fullExtent = new Envelope(113.54638776785004,22.967969390150024, 121.4982643631501,29.811366914850048, SpatialReference.create(4490));

         String templateUri = "http://service.fjmap.net/vec_f ... ix%3D{level}&TileRow={row}&TileCol={col}&style=vec_fj&format=image/tile";

WebTiledLayer webTiledLayer = new WebTiledLayer(templateUri,tileInfo,fullExtent);

map.getBasemap().getBaseLayers().add(webTiledLayer);

mMapView.setMap(map);


参考连接:

主要参考张工这篇如何加载国家天地图
 
https://blog.csdn.net/zssai201 ... 45628

0 个评论

要回复文章请先登录注册