Android端缓存标注显示比例换算

为了解决中文标注的问题,标注信息以缓存服务进行提供且设置了可见比例范围,要素信息以离线矢量geodatabase的形式提供。这种情况下,如何保证矢量的显示和标注缓存的信息相一致?
已邀请:

张赛

赞同来自:

【解决办法】:
通过DPI换算出对应的矢量显示比例级别,而后调用代码对于离线矢量设置可见比例范围。具体步骤如下:
1 获取DPI
DPI的获取最直接的方案是根据Android端的各种参数直接获取Esri所使用的DPI:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
float xdpi = dm.xdpi;
float ydpi = dm.ydpi;
float esridpi = (int)Math.sqrt(xdpi*ydpi);

2 根据比例算比例
以ArcGIS Online/google/bing的tiling schema创建的tpk为例。在这一TPK创建时,设置,当放大至1000000时,显示标注。根据tiling schema的具体信息,1000000这一比例值位于第9级1155581和第10级577791之间。以中间值(1155581+577791)/2即866686为界限,从>866586开始显示标注信息,对应DPI换算值如附件所示,获取约值1697064。
3设置最小比例值,如下
fLayer.setMinScale(esridpi*866586/96);

要回复问题请先登录注册