23 lines
751 B
Python
23 lines
751 B
Python
from dataclasses import dataclass
|
|
from typing import Optional, List, Dict, Any, TYPE_CHECKING
|
|
|
|
from models.geo_json.geometry import GeoJSONGeometry
|
|
from models.geo_json.properties import GeoJSONProperties
|
|
|
|
if TYPE_CHECKING:
|
|
from models.circuit import Circuit
|
|
|
|
@dataclass
|
|
class GeoJSONFeature:
|
|
type: str
|
|
properties: GeoJSONProperties
|
|
bbox: Optional[List[float]]
|
|
geometry: GeoJSONGeometry
|
|
@classmethod
|
|
def from_dict(cls, circuit: 'Circuit', data: Dict[str, Any]) -> 'GeoJSONFeature':
|
|
return cls(
|
|
type=data['type'],
|
|
properties=GeoJSONProperties.from_dict(circuit, data['properties']),
|
|
geometry=GeoJSONGeometry.from_dict(data['geometry']),
|
|
bbox=data.get('bbox')
|
|
) |