meface/docs/article/gis/geoserver/publicshapefile.md

101 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 发布shapefile文件
date: 2020-02-25
author: ac
tags:
- GeoServer
- shapefile
categories:
- GIS
---
## 发布shapefile文件
### 一、shapefile 文件
ESRI Shapefileshp或简称shapefile是美国环境系统研究所公司ESRI开发的一种空间数据开放格式用于描述几何体对象折线与多边形仅仅能够存储几何体的位置数据没法存储地理数据的拓扑信息也无法在一个文件之中同时存储这些几何体的属性数据。所以Shapefile还必须附带一个二维表用于存储Shapefile中每个几何体的属性信息。
Shapefile文件指的是一种文件存储的方法实际上该种文件格式是由多个文件组成
1. .shp文件主文件用于保存几何实体
2. .shx文件索引文件保存每个记录包含对应主文件记录离主文件头开始的偏移
3. .dbf文件dBASE表保存实体的属性信息
4. .prj文件用于保存地理坐标系统与投影信息是一个存储well-known text投影描述符的文本文件。
5. .shp.xml文件以XML格式保存元数据。
6. .cpg文件用于描述.dbf文件的代码页指明其使用的字符编码
> 一个Shapefile".shp", ".shx"与 ".dbf"三个文件是必不可少的。
![img](./images/20200225154105114.png)
### 二、发布shapefile文件
**数据准备**
将要发布服务的数据拷贝到`<<GEOSERVER_DATA_DIR>/data`下面即数据目录中的data文件夹下。
![image-20201123112310070](./images/image-20201123112310070.png)
**创建新的工作区**
也可以选择已存在的工作区
![image-20201123113657417](./images/image-20201123113657417.png)
> Name工作空间名称不得超过十个字符
>
> Namespace URI命名空间URI通常可以是与项目关联的URL并添加了指示空间的尾随标识符 不需要解析实际有效的Web地址
**创建数据源**
数据存储/添加新的数据存储/Shapefile
> 需要根据shapefile文件的cpg文件中指明的字符编码设置字符集。
![image-20201123114134883](./images/image-20201123114134883.png)
**发布图层**
在创建完数据存储后,会有一个创建图层界面,点击后出现编辑图层
- 编辑图层“数据”tabs,填写基本信息、边框选择‘从数据中计算’
- "发布" 的tab页中设置WMS的Default Style为line和显示样式保存即发布成功
![image-20201123114449423](./images/image-20201123114449423.png)
![image-20201123115033092](./images/image-20201123115033092.png)
![image-20201123115316340](./images/image-20201123115316340.png)
保存后就发布成功了,可以在图层预览中查看图层:
![image-20201123115628373](./images/image-20201123115628373.png)
![image-20201123115712859](./images/image-20201123115712859.png)
### 三、乱码问题
数据源中设置的dbf文件的字符集编码与实际不符所以导致属性信息出现乱码
注意shapefile文件的版本
- 在 ArcGIS 10.2.1 之前的版本,创建 shapefile 的时候其编码类型是由操作系统的语言区域设置language locale决定的。
- 而从 ArcGIS Desktop 10.2.1 版本以及之后的版本产生的shapefile都是 UTF-8 编码的。
- desktop能识别utf-8的shape文件其它工具如QGIS默认是GBK编码所以会出现乱码的情况。