Skip to main content

Integration

API Integration

REST API Endpoints

bash


# Health Check
GET /health
# Tile Endpoints
GET /tiles/{z}/{x}/{y}.{format}
GET /tiles/{style}/{z}/{x}/{y}.{format}
# Metadata
GET /metadata/{tileset}
GET /styles/{style}/metadata
# Administrative
POST /cache/clear
GET /stats

JavaScript Client Integration

javascript

// Leaflet Integration
const map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('http://localhost:8080/tiles/{z}/{x}/{y}.png', {
attribution: 'Tile Server 5.3.1',
maxZoom: 18,
tileSize: 256
}).addTo(map);
// Mapbox GL JS Integration
mapboxgl.accessToken = 'your_api_key';
const map = new mapboxgl.Map({
container: 'map',
style: 'http://localhost:8080/styles/default/style.json',
center: [-0.09, 51.505],
zoom: 13
});

Python Client Integration

python

import requests
import json
class TileServerClient:
def __init__(self, base_url, api_key=None):
self.base_url = base_url
self.api_key = api_key
self.session = requests.Session()
def get_tile(self, z, x, y, format='png', style='default'):
url = f"{self.base_url}/tiles/{style}/{z}/{x}/{y}.{format}"
headers = {'X-API-Key': self.api_key} if self.api_key else {}
response = self.session.get(url, headers=headers)
response.raise_for_status()
return response.content
def get_metadata(self, tileset):
url = f"{self.base_url}/metadata/{tileset}"
response = self.session.get(url)
return response.json()
# Usage
client = TileServerClient('http://localhost:8080', 'your_api_key')
tile_data = client.get_tile(10, 512, 512, 'png')

Kubernetes Deployment

yaml


apiVersion: apps/v1
kind: Deployment
metadata:
name: tileserver
spec:
replicas: 3
selector:
matchLabels:
app: tileserver
template:
metadata:
labels:
app: tileserver
spec:
containers:
- name: tileserver
image: tileserver:5.3.1
ports:
- containerPort: 8080
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: tileserver-secrets
key: db-password
volumeMounts:
- name: config
mountPath: /app/config
- name: cache
mountPath: /var/cache/tiles
volumes:
- name: config
configMap:
name: tileserver-config
- name: cache
emptyDir: {}