天天看點

Skyline中的定位

public void zoomtolayerNav(final DisplayItem item) {
		UI.runOnRenderThread(new Runnable(){
			@Override
			public void run() {
				
				IProjectTree projectTree = ISGWorld.getInstance().getProjectTree();
				if(item!=null){
					ITerraExplorerObject teobj= projectTree.GetObject(item.id);
					if(teobj==null)
						return;
					switch (teobj.getObjectType()) {
					case ObjectTypeCode.OT_FEATURE_LAYER:
						IFeatureLayer featurelay = projectTree.GetLayer(item.id);
						ISGWorld.getInstance().getNavigate().FlyTo(featurelay.getPosition());
						break;
					case ObjectTypeCode.OT_3D_MESH_LAYER:
						IMeshLayer meshlayer=teobj.CastTo(IMeshLayer.class);
						ISGWorld.getInstance().getNavigate().FlyTo(meshlayer.getPosition());
					case ObjectTypeCode.OT_3D_MESH_FEATURE_LAYER:
						I3DMLFeatureLayer meshfeaturelayer=teobj.CastTo(I3DMLFeatureLayer.class);
						ISGWorld.getInstance().getNavigate().FlyTo(meshfeaturelayer.getPosition());
					default:
						break;
					}

				}
				finish();
			}
			
		});