World Wind Java开发之五——读取本地shp文件(转)

时间:2023-03-08 21:14:05

http://blog.****.net/giser_whu/article/details/41484433

World Wind Java 使用IconLayer图层类表现点和多点数据,使用RenderableLayer图层表现线和面数据,一个图层只能对应一组shape文件。World Wind Java首先使用ShapefileLoader类完成对shape文件的读取和加载,再通过createLayerFromSource方法创建RenderableLayer,最后将创建的Layer加在layers上。源码如下:

  1. /**
  2. *
  3. * 方法名称: AddShapeData ;
  4. * 方法描述:  添加本地shape文件 ;
  5. * 参数 :@param filePath :文件路径
  6. * 参数 :@param fileName :文件名
  7. * 参数 :@param layerTitle :图层名称
  8. * 参数 :@param maxActiveAltitude :图层可见最高视点
  9. * 参数 :@param minActiveAltitude :图层可见最低视点
  10. * 参数 :@return
  11. * 返回类型: boolean ;
  12. * 创建人:James;
  13. * 创建时间:2014-11-25 下午5:19:48;
  14. * @throws
  15. */
  16. public boolean AddShapeData(String filePath, String fileName,
  17. String layerTitle, double maxActiveAltitude,
  18. double minActiveAltitude)
  19. {
  20. boolean result = false;
  21. try
  22. {
  23. ShapefileLoader pShapefileLoader = new ShapefileLoader();
  24. pShapeLayer = pShapefileLoader.createLayerFromSource(filePath
  25. + fileName + ".shp");
  26. pShapeLayer.setName(layerTitle);// 设置图层名称
  27. pShapeLayer.setMaxActiveAltitude(maxActiveAltitude);
  28. pShapeLayer.setMinActiveAltitude(minActiveAltitude);
  29. worldWindowGLCanvas.getModel().getLayers().add(pShapeLayer);
  30. //添加图层树节点
  31. pVectorNode.add(new DefaultMutableTreeNode(layerTitle));
  32. pLayerTree.updateUI();
  33. result = true;
  34. }
  35. catch (Exception e)
  36. {
  37. // TODO: handle exception
  38. System.out.println(e.getMessage());
  39. }
  40. return result;
  41. }

效果图如下图所示:

World Wind Java开发之五——读取本地shp文件(转)