# 26-Jun-2026 — reliable shapefile import, point markers, full-resolution GPX [ref #102](https://github.com/nbarrett/ngx-ramblers/issues/102)

## [build 721](https://github.com/nbarrett/ngx-ramblers/actions/runs/28248078096) — [commit 08e510e](https://github.com/nbarrett/ngx-ramblers/commit/08e510eb355480e612dfe065360634a4f67a5c08)

_____

## Import

- **Reliable shapefile reads.** Read `.shp`/`.dbf` into byte buffers before `shapefile.open()`, so import works in the deployed runtime (path-based reads were failing with "Cannot create a Buffer larger than N bytes").
- **Point geometry as markers.** Point-geometry shapefiles import as map markers (new `MapRouteImportMarker`) instead of degenerate single-point tracks. Point-only groups skip GPX/route creation, and the edit component appends the points to `map.markers`.
- **Numbered-point labels.** `featureName` now reads the "Text" attribute used by the numbered-point files.
- **Full-resolution routes.** Only decimate tracks over 2000 points; the previous 5% step decimation crushed every route to ~20 points.

## Rendering

- **Numbered pins.** `numberedMarkerIcon` draws short-labelled markers and GPX waypoints as numbered teardrop pins.
- **Sensible fit.** The map fits to the route bounds (markers used only as a fallback when there is no route), so a stray/far marker no longer zooms the map right out.
- **No accidental viewport overwrite.** `captureMapView` ignores `moveend`/`zoomend` fired during auto-fit/config-apply (`suppressViewportHandler`), so the editor no longer overwrites an explicit `mapCenter`/`mapZoom` with the auto-fit zoom or silently flips `autoFitBounds` off.