|
# ESRI/ArcGIS Import
|
|
|
|
Import spatial data from ArcGIS Server and ArcGIS Online services.
|
|
|
|
## Overview
|
|
|
|
ESRI/ArcGIS import allows you to harvest and import data from ArcGIS REST services, including MapServer and FeatureServer endpoints.
|
|
|
|
## Supported Services
|
|
|
|
### MapServer
|
|
|
|
- **Description**: ArcGIS MapServer REST service
|
|
- **Features**: Map layers, feature layers, group layers
|
|
- **Use Case**: Static map services, published datasets
|
|
|
|
### FeatureServer
|
|
|
|
- **Description**: ArcGIS FeatureServer REST service
|
|
- **Features**: Editable feature layers, queries
|
|
- **Use Case**: Dynamic data, editable services
|
|
|
|
### ArcGIS Online
|
|
|
|
- **Description**: ArcGIS Online hosted services
|
|
- **Features**: Public and private services
|
|
- **Use Case**: Cloud-hosted datasets
|
|
|
|
## Import Methods
|
|
|
|
### Service Browser
|
|
|
|
Browse and import from ArcGIS services:
|
|
|
|
1. Navigate to ESRI browser page
|
|
2. Enter service URL
|
|
3. Browse available layers
|
|
4. Select layer to import
|
|
5. Configure import options
|
|
6. Click "Import"
|
|
|
|
### Direct URL Import
|
|
|
|
Import directly from service URL:
|
|
|
|
1. Navigate to URL import page
|
|
2. Enter ArcGIS service URL
|
|
3. System detects service type
|
|
4. Configure import options
|
|
5. Click "Import"
|
|
|
|
## Service URL Format
|
|
|
|
### MapServer
|
|
|
|
```
|
|
https://server/arcgis/rest/services/ServiceName/MapServer
|
|
https://server/arcgis/rest/services/ServiceName/MapServer/{layerId}
|
|
```
|
|
|
|
### FeatureServer
|
|
|
|
```
|
|
https://server/arcgis/rest/services/ServiceName/FeatureServer
|
|
https://server/arcgis/rest/services/ServiceName/FeatureServer/{layerId}
|
|
```
|
|
|
|
### ArcGIS Online
|
|
|
|
```
|
|
https://services.arcgis.com/{orgId}/arcgis/rest/services/{serviceName}/FeatureServer
|
|
```
|
|
|
|
## Import Process
|
|
|
|
### Step 1: Service Discovery
|
|
|
|
System discovers service information:
|
|
- Service type (MapServer/FeatureServer)
|
|
- Available layers
|
|
- Layer metadata
|
|
- Spatial reference system
|
|
|
|
### Step 2: Layer Selection
|
|
|
|
Select layer to import:
|
|
- Browse available layers
|
|
- View layer metadata
|
|
- Check geometry types
|
|
- Verify attribute fields
|
|
|
|
### Step 3: Query Configuration
|
|
|
|
Configure data query:
|
|
- **Where Clause**: SQL WHERE clause for filtering
|
|
- **Out Fields**: Fields to include
|
|
- **Spatial Filter**: Bounding box or geometry
|
|
- **Max Records**: Maximum features to import
|
|
|
|
### Step 4: Authentication
|
|
|
|
If required, provide credentials:
|
|
- **Username/Password**: ArcGIS credentials
|
|
- **Token**: ArcGIS token (auto-generated)
|
|
- **Anonymous**: For public services
|
|
|
|
### Step 5: Data Harvesting
|
|
|
|
Data is harvested from service:
|
|
- Paginated queries (1000 features per batch)
|
|
- Geometry conversion (ArcGIS JSON to GeoJSON)
|
|
- Attribute extraction
|
|
- Coordinate transformation
|
|
|
|
### Step 6: Import
|
|
|
|
Harvested data is imported:
|
|
- Table creation: `spatial_data_{file_id}`
|
|
- Geometry conversion to PostGIS
|
|
- Spatial index creation
|
|
- Metadata storage
|
|
|
|
## Query Parameters
|
|
|
|
### Where Clause
|
|
|
|
SQL WHERE clause for filtering:
|
|
|
|
```sql
|
|
OBJECTID > 1000
|
|
Category = 'Residential'
|
|
Population > 50000
|
|
```
|
|
|
|
### Out Fields
|
|
|
|
Comma-separated list of fields:
|
|
|
|
```
|
|
OBJECTID,Name,Category,Population
|
|
* -- All fields
|
|
```
|
|
|
|
### Spatial Filter
|
|
|
|
Bounding box or geometry:
|
|
|
|
```json
|
|
{
|
|
"geometry": {
|
|
"xmin": -180,
|
|
"ymin": -90,
|
|
"xmax": 180,
|
|
"ymax": 90,
|
|
"spatialReference": {"wkid": 4326}
|
|
},
|
|
"geometryType": "esriGeometryEnvelope"
|
|
}
|
|
```
|
|
|
|
## Authentication
|
|
|
|
### Public Services
|
|
|
|
No authentication required for public services.
|
|
|
|
### Secured Services
|
|
|
|
For secured services, provide:
|
|
- **Username**: ArcGIS username
|
|
- **Password**: ArcGIS password
|
|
- **Token**: Auto-generated from credentials
|
|
|
|
### Token Management
|
|
|
|
- Tokens auto-generated from credentials
|
|
- Tokens cached for session
|
|
- Token refresh handled automatically
|
|
|
|
## Scheduled Imports
|
|
|
|
Set up recurring imports:
|
|
|
|
1. Configure ArcGIS import
|
|
2. Set schedule (daily, weekly, monthly)
|
|
3. Configure update mode
|
|
4. Save schedule
|
|
|
|
**Update Modes**:
|
|
- **Replace**: Replace all data
|
|
- **Append**: Add new data
|
|
- **Upsert**: Update existing, insert new
|
|
|
|
## Metadata Harvesting
|
|
|
|
System harvests comprehensive metadata:
|
|
- Service information
|
|
- Layer metadata
|
|
- Field definitions
|
|
- Spatial reference
|
|
- Extent information
|
|
|
|
## Example: MapServer Import
|
|
|
|
```bash
|
|
# Via browser
|
|
1. Navigate to ESRI browser
|
|
2. Enter: https://server/arcgis/rest/services/ServiceName/MapServer
|
|
3. Select layer
|
|
4. Configure query
|
|
5. Click "Harvest"
|
|
```
|
|
|
|
## Example: FeatureServer Import
|
|
|
|
```json
|
|
{
|
|
"service_url": "https://server/arcgis/rest/services/ServiceName/FeatureServer/0",
|
|
"where": "Category = 'Residential'",
|
|
"out_fields": "*",
|
|
"max_records": 10000,
|
|
"auth_username": "user",
|
|
"auth_password": "pass"
|
|
}
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
**Service not accessible**
|
|
- Verify service URL
|
|
- Check network connectivity
|
|
- Verify service is public or provide credentials
|
|
|
|
**Authentication failed**
|
|
- Verify username/password
|
|
- Check service permissions
|
|
- Verify token endpoint accessible
|
|
|
|
**No features returned**
|
|
- Check WHERE clause syntax
|
|
- Verify layer has data
|
|
- Check spatial filter bounds
|
|
|
|
**Import timeout**
|
|
- Reduce max records
|
|
- Use spatial filter to limit data
|
|
- Consider scheduled import for large datasets
|
|
|
|
**Geometry errors**
|
|
- Verify spatial reference system
|
|
- Check for invalid geometries
|
|
- Verify geometry type compatibility
|
|
|
|
## Related Documentation
|
|
|
|
- [Vector Import](vector.md)
|
|
- [Raster Import](raster.md)
|
|
- [PostGIS Import](postgis.md)
|
|
- [URL Import](vector.md#url-import)
|
|
|