本次练习是有关底图的内容,要求添加一个控件。具体操作是在MapActicy类initMap方法中,添加相关控件后即与后台数据库绑定,内容都相对简单,毕竟是在已有的代码上进行添加修改。 initMap()中还有很多不太懂的代码段,慢慢来吧
关键代码展示如下
List<TextView> listview = new ArrayList<TextView>();
listview.add((TextView)
findViewById(R.id.txtlayerSwicher1));
listview.add((TextView)
findViewById(R.id.txtlayerSwicher2));
listview.add((TextView)
findViewById(R.id.txtlayerSwicher3));
listview.add((TextView)
findViewById(R.id.txtlayerSwicher4));
mbaseMap = new HashMap<String, List<Layer>>();//底图
JSONObject jMapConfig = MapUtilsBySqlite.getMapConfig();//获取地图资源??
if (null == jMapConfig
|| jMapConfig.getJSONArray("baselayers") == null
|| jMapConfig.getJSONArray("baselayers").length() <= 0) {
MessageHelper.ShowToast(R.string.MSG_E14);
} else {
//资源?jmapArr
JSONArray jmapArr = jMapConfig.getJSONArray("baselayers");
//权限?jmapPermisssion
JSONArray jmapPermission = userpermission
.getBaseMapPermission();
for (int i = 0, index = 0; i < jmapArr.length(); i++) {
//jmapObj
JSONObject jmapObj = jmapArr.getJSONObject(i);
String sMapID = jmapObj.getString("mapid"); // 底图权限控制
String sMapName = jmapObj.getString("name"); // 底图名
//llayer
List<Layer> llayer = new ArrayList<Layer>();
//底图资源??jamps
JSONArray jmaps = jmapObj.getJSONArray("layers");
if (!jugeLayershow(jmapPermission, sMapID)) {// 如果用户没有该权限则跳过该图层
continue;
}
if (index < 4) {//修改的地方
TextView itemTextView = listview.get(index);
itemTextView.setText(sMapName);
itemTextView.setVisibility(View.VISIBLE);
itemTextView.setTag(jmapObj);
itemTextView.setOnClickListener((View.OnClickListener) layerSwicherListener);
}
index++;