GeoServerRest.py 7.2 KB

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