GeoServerRest.py 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. # -*- coding: utf-8 -*-
  2. from Geoserver import Geoserver
  3. import siwei_config
  4. geoserver_config = siwei_config.CONFIG['geoserver']
  5. # 连接GeoServer
  6. geo = Geoserver(geoserver_config['url'], username=geoserver_config['username'], password=geoserver_config['password'])
  7. geo.create_datastore(name="wuchuan0705", path=r'D:\temp\wuchuan0705.shp', workspace='spot')
  8. geo.publish_featurestore(workspace='spot', store_name='wuchuan0705', pg_table='wuchuan0705')
  9. geo.publish_style(layer_name='wuchuan0705', style_name='spot', workspace='spot')
  10. # geo.create_coveragestyle(raster_path=r'D:\gisdata\tif\xyq.tif', style_name='style_raster', workspace='demo', color_ramp='RdBu_r')
  11. # geo.publish_style(layer_name='demo_tiff', style_name='style_raster', workspace='demo')
  12. # caching
  13. # geo.caching_layer(layer_name='webgistest:capital', zoom_start=1, zoom_stop=15, auto_seed=False)
  14. # geo.seed_caching_layer(layer_name='webgistest:capital', zoom_start=1, zoom_stop=15, seedtype='reseed')
  15. # geo.seed_caching_layer(layer_name='webgistest:capital', zoom_start=1, zoom_stop=15, seedtype='truncate')
  16. # geo.seed_caching_layer(layer_name='webgistest:capital', zoom_start=1, zoom_stop=15, seedtype='seed')
  17. # 创建工作空间
  18. # geo.create_workspace(workspace='demo')
  19. # 上传影像数据到工作空间
  20. # geo.create_coveragestore(layer_name='demo_tiff', path=r'D:/gisdata/HEBEI/HebeiDEM.tif', workspace='demo')
  21. # 创建PostGIS数据库连接到工作空间
  22. # geo.create_featurestore(store_name='pg_test', workspace='demo', db='webgistest', host='localhost', pg_user='postgres',pg_password='postgres', schema='public')
  23. # 发布PostGIS数据表
  24. # geo.publish_featurestore(workspace='demo', store_name='pg_test', pg_table='安国市-保定_shape'.encode('utf-8').decode('utf-8'))
  25. # geo.publish_featurestore(workspace='demo', store_name='pg_test', pg_table='capital')
  26. # 基于数据表做sql查询并发布
  27. # sql = 'SELECT * FROM baoding_shape'
  28. # geo.publish_featurestore_sqlview(store_name='pg_test', name='view_test', sql=sql, key_column='id', workspace='demo')
  29. # 发布shp数据
  30. # geo.create_shp_datastore(path=r'D:/gisdata/HEBEI/WYDC.zip', store_name='store', workspace='demo')
  31. # geo.create_datastore(name="WYDC", path=r'D:/gisdata/HEBEI/WYDC.shp', workspace='demo')
  32. # geo.publish_featurestore(workspace='demo', store_name='pg_test', pg_table='baoding_shape')
  33. # WFS注册
  34. # geo.create_datastore(name="wfs", path='http://localhost:28085/geoserver/wfs?request=GetCapabilities', workspace='demo')
  35. # geo.publish_featurestore(workspace='demo', store_name='wfs', pg_table='wfs_layer_name')
  36. # layergroup
  37. # create a new layergroup from 2 existing layers
  38. # geo.create_layergroup(
  39. # name="my_fancy_layergroup",
  40. # mode="single",
  41. # title="My Fancy Layergroup Title",
  42. # abstract_text="This is a very fancy Layergroup",
  43. # layers=["fancy_layer_1", "fancy_layer_2"],
  44. # workspace="my_space", # None if you want to create a layergroup outside the workspace
  45. # keywords=["list", "of", "keywords"]
  46. # )
  47. # add another layer
  48. # geo.add_layer_to_layergroup(
  49. # layergroup_name="my_fancy_layergroup",
  50. # layergroup_workspace="my_space",
  51. # layer_name="superfancy_layer",
  52. # layer_workspace="my_space"
  53. # )
  54. # remove a layer
  55. # geo.remove_layer_from_layergroup(
  56. # layergroup_name="my_fancy_layergroup",
  57. # layergroup_workspace="my_space",
  58. # layer_name="superfancy_layer",
  59. # layer_workspace="my_space"
  60. # )
  61. # Style Vector
  62. # geo.upload_style(path=r'E:/projects/QGIS/styles/point.sld', workspace='demo', name='point')
  63. # geo.publish_style(layer_name='capital', style_name='point', workspace='demo')
  64. # Style Tiff
  65. # geo.create_coveragestyle(raster_path=r'D:/gisdata/HEBEI/HebeiDEM.tif', style_name='style_raster', workspace='demo', color_ramp='RdBu_r')
  66. # geo.publish_style(layer_name='demo_tiff', style_name='style_raster', workspace='demo')
  67. # Style Setting
  68. # c_ramp = {
  69. # 'label 1 value': '#ffff55',
  70. # 'label 2 value': '#505050',
  71. # 'label 3 value': '#404040',
  72. # 'label 4 value': '#333333'
  73. # }
  74. # geo.create_coveragestyle(raster_path=r'D:/gisdata/HEBEI/HebeiDEM.tif',
  75. # style_name='style_raster2',
  76. # workspace='demo',
  77. # color_ramp=c_ramp,
  78. # cmap_type='values')
  79. # you can also pass this list of color if you have your custom colors for the ``color_ramp``
  80. # geo.create_coveragestyle(raster_path=r'D:/gisdata/HEBEI/HebeiDEM.tif',
  81. # style_name='style_raster3',
  82. # workspace='demo',
  83. # color_ramp=['#ffffff', '#453422', '#f0f0f0', '#aaaaaa'],
  84. # cmap_type='values')
  85. # geo.publish_style(layer_name='demo_tiff', style_name='style_raster', workspace='demo')
  86. # delete workspace
  87. # geo.delete_workspace(workspace='demo')
  88. # delete layer
  89. # geo.delete_layer(layer_name='agri_final_proj', workspace='demo')
  90. # delete feature store, i.e. remove postgresql connection
  91. # geo.delete_featurestore(featurestore_name='ftry', workspace='demo')
  92. # delete coveragestore, i.e. delete raster store
  93. # geo.delete_coveragestore(coveragestore_name='agri_final_proj', workspace='demo')
  94. # delete style file
  95. # geo.delete_style(style_name='kamal2', workspace='demo')
  96. # get geoserver version
  97. # version = geo.get_version()
  98. # print(version)
  99. #
  100. # # get ststem info
  101. # status = geo.get_status()
  102. # system_status = geo.get_system_status()
  103. #
  104. # # get workspace
  105. # workspace = geo.get_workspaces()
  106. #
  107. # # get default workspace
  108. # dw = geo.get_default_workspace()
  109. #
  110. # # get all the workspaces
  111. # workspaces = geo.get_workspaces()
  112. #
  113. # # get datastore
  114. # datastore = geo.get_datastores(workspace='webgistest')
  115. #
  116. # # get all the datastores
  117. # datastores = geo.get_datastores()
  118. #
  119. # # get coveragestore
  120. # # cs = geo.get_coveragestore(coveragestore_name='cs')
  121. #
  122. # # get all the coveragestores
  123. # css = geo.get_coveragestores()
  124. #
  125. # # get layer
  126. # layer = geo.get_layer(layer_name='capital')
  127. #
  128. # # get all the layers
  129. # layers = geo.get_layers()
  130. #
  131. # # get layergroup
  132. # # layergroup = geo.get_layergroup('layergroup_name')
  133. #
  134. # # get all the layers
  135. # # layergroups = geo.get_layergroups()
  136. #
  137. # # get style
  138. # # style = geo.get_style(style_name='style_name')
  139. #
  140. # # get all the styles
  141. # styles = geo.get_styles()
  142. #
  143. # # get featuretypes
  144. # featuretypes = geo.get_featuretypes(workspace='webgistest', store_name='webgistest')
  145. #
  146. # # get feature attribute
  147. # # fa = geo.get_feature_attribute(feature_type_name='ftn', workspace='ws', store_name='sn')
  148. #
  149. # # get feature store
  150. # # fs = geo.get_featurestore(store_name='sn', workspace='ws')
  151. #
  152. # # Reloads the GeoServer catalog and configuration from disk. This operation is used in cases where an external tool has modified the on-disk configuration. This operation will also force GeoServer to drop any internal caches and reconnect to all data stores.
  153. # geo.reload()
  154. #
  155. # # Resets all store, raster, and schema caches. This operation is used to force GeoServer to drop all caches and store connections and reconnect to each of them the next time they are needed by a request. This is useful in case the stores themselves cache some information about the data structures they manage that may have changed in the meantime.
  156. # geo.reset()
  157. #
  158. # # set default workspace
  159. # geo.set_default_workspace(workspace='webgistest')