AR1/docs/import/vector.md

211 lines
4.8 KiB
Markdown

# Vector Data Import
Import vector spatial data from files or URLs.
## Overview
Vector data import supports multiple file formats and import methods for point, line, and polygon data.
## Supported Formats
### GeoJSON
- **Extension**: `.geojson`, `.json`
- **Description**: GeoJSON Feature Collections
- **Features**: Full support for all geometry types and properties
### Shapefile
- **Extension**: `.shp`, `.zip` (containing shapefile components)
- **Description**: ESRI Shapefile format
- **Requirements**: ZIP archive must contain `.shp`, `.shx`, `.dbf` files
- **Note**: `.prj` file recommended for proper coordinate system
### KML
- **Extension**: `.kml`
- **Description**: Google Earth KML format
- **Features**: Supports placemarks, paths, and polygons
### CSV
- **Extension**: `.csv`
- **Description**: Comma-separated values with coordinates
- **Requirements**: Must have coordinate columns (lat/lon or x/y)
- **Features**: Automatic column detection
### GeoPackage
- **Extension**: `.gpkg`
- **Description**: OGC GeoPackage format
- **Features**: Supports multiple layers and raster data
### DXF
- **Extension**: `.dxf`
- **Description**: AutoCAD DXF format
- **Features**: Supports CAD drawings and annotations
### PBF
- **Extension**: `.pbf`
- **Description**: OpenStreetMap Protocol Buffer Format
- **Requirements**: `osm2pgsql` must be installed
- **Features**: High-performance OSM data import
## Import Methods
### File Upload
Upload files directly from your computer:
1. Navigate to upload page
2. Select file or drag and drop
3. Add optional description
4. Select target SRS (default: EPSG:4326)
5. Click "Upload"
**File Size Limit**: 50MB (configurable)
### URL Import
Import from web-accessible URLs:
1. Navigate to URL import page
2. Enter data URL
3. Configure import options
4. Optionally schedule import
5. Click "Import"
**Supported URL Types**:
- Direct file URLs
- GeoJSON service endpoints
- ArcGIS REST services
- WFS endpoints
### Scheduled Import
Set up recurring imports from URLs:
1. Configure URL import
2. Set schedule (daily, weekly, monthly)
3. Configure update mode (replace, append, upsert)
4. Save schedule
## Import Process
### Step 1: File Detection
The system automatically detects file type based on:
- File extension
- File content (for ambiguous extensions)
- ZIP archive contents
### Step 2: Metadata Extraction
Metadata is extracted including:
- Feature count
- Geometry types
- Bounding box
- Coordinate system
- Attribute fields
### Step 3: Data Processing
Data is processed based on file type:
- **GeoJSON**: Direct parsing and import
- **Shapefile**: Extraction from ZIP, coordinate transformation
- **CSV**: Coordinate column detection, geometry creation
- **KML**: Placemark and geometry extraction
- **PBF**: OSM data processing via osm2pgsql
### Step 4: PostGIS Import
Processed data is imported into PostGIS:
- Table creation: `spatial_data_{file_id}`
- Geometry conversion to PostGIS format
- Spatial index creation
- Attribute storage in JSONB
### Step 5: Registration
Dataset is registered in the system:
- Metadata stored in `spatial_files` table
- Access permissions set
- Version record created
## Configuration Options
### Target SRS
Select target spatial reference system:
- **EPSG:4326** (WGS84): Default, global coverage
- **EPSG:3857** (Web Mercator): Web mapping standard
- **Other**: Any valid EPSG code
### Update Mode
For scheduled imports:
- **Replace**: Replace all existing data
- **Append**: Add new data to existing
- **Upsert**: Update existing, insert new (requires key columns)
### Filters
Apply filters during import:
- **Spatial Filter**: Bounding box or geometry
- **Attribute Filter**: SQL WHERE clause
- **Feature Limit**: Maximum number of features
## Example: GeoJSON Import
```bash
# Via API
curl -X POST "https://example.com/upload.php" \
-F "spatial_file=@data.geojson" \
-F "description=Sample dataset" \
-F "targetSRS=EPSG:4326"
```
## Example: URL Import
```bash
# Via API
curl -X POST "https://example.com/import_url.php" \
-d "url=https://example.com/data.geojson" \
-d "description=Imported from URL" \
-d "targetSRS=EPSG:4326"
```
## Troubleshooting
### Common Issues
**File too large**
- Check file size limit configuration
- Consider splitting large files
- Use URL import for very large files
**Invalid geometry**
- Verify coordinate system
- Check for invalid geometries in source
- Use geometry validation tools
**Missing coordinate system**
- Ensure `.prj` file included for shapefiles
- Specify target SRS manually
- Check source data metadata
**Import timeout**
- Increase PHP execution time limit
- Use background import for large files
- Consider chunked upload for very large files
## Related Documentation
- [Raster Import](raster.md)
- [PostGIS Import](postgis.md)
- [ESRI Import](esri.md)
- [Installation Guide](../installation.md)