From 25f49a0f27ff581570e45d61e4eb419a6e001a04 Mon Sep 17 00:00:00 2001 From: david kiania Date: Mon, 8 Jun 2026 21:46:30 +0300 Subject: [PATCH] feat(map): toggleable overlay layers + Shell fuel stations (232) Add a data-driven overlay system: an OVERLAYS registry + generic addOverlay() that renders each layer as a MapLibre symbol layer (auto-declutter via icon-allow-overlap:false, ~8->16px zoom-scaled icon), plus a collapsible "Layers" control to toggle each on/off (all OFF by default). First layer: Shell stations from layers/shell_stations.geojson (232 pts, OSM kenya-260605), 11px Shell-yellow pump icon. Dockerfile now copies layers/ into nginx. Adding the next layer = drop a .geojson + one registry entry. Co-Authored-By: Claude Opus 4.8 --- Dockerfile | 3 + index.html | 109 +++++++++++++++++++++++++++++++++- layers/shell_stations.geojson | 1 + 3 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 layers/shell_stations.geojson diff --git a/Dockerfile b/Dockerfile index c29cdf5..159ce11 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,6 +11,9 @@ COPY nginx.conf /etc/nginx/conf.d/fleetnow.conf # The whole app is one self-contained file (inline CSS/JS; MapLibre from a CDN). COPY index.html /usr/share/nginx/html/index.html +# Static map-overlay data (toggleable layers: gas stations, etc.), served at /layers/. +COPY layers/ /usr/share/nginx/html/layers/ + EXPOSE 80 # Coolify reads this; also handy for `docker ps` health. diff --git a/index.html b/index.html index 581beeb..4d48c1d 100644 --- a/index.html +++ b/index.html @@ -296,6 +296,23 @@ .legend-lbl { flex: 1; text-transform: uppercase; letter-spacing: .02em; } .legend-n { color: var(--muted); font-weight: 700; } + /* ── Map layers control (toggleable overlays: gas stations, …) ──────── */ + #layers { position: absolute; right: 10px; top: 10px; z-index: 5; + font: 600 11px system-ui; color: #fff; user-select: none; } + .layers-toggle { cursor: pointer; border: 1px solid var(--border); + background: rgba(15,18,23,.92); color: #fff; font: 600 11px system-ui; + padding: 4px 10px; border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,.45); } + .layers-toggle::before { content: '▣'; color: var(--accent); margin-right: 5px; } + .layers-body { margin-top: 6px; background: rgba(15,18,23,.92); + border: 1px solid var(--border); border-radius: 8px; padding: 7px 9px; + box-shadow: 0 4px 14px rgba(0,0,0,.5); display: grid; gap: 5px; min-width: 150px; } + #layers.collapsed .layers-body { display: none; } + .layers-row { display: flex; align-items: center; gap: 7px; cursor: pointer; } + .layers-row input { accent-color: var(--accent); margin: 0; } + .layers-n { margin-left: auto; color: var(--muted); font-weight: 700; } + .ov-pop b { color: #fff; } + .ov-pop .ov-sub { color: var(--muted); font-weight: 600; font-size: 10px; margin-top: 2px; } + /* ── Persistent POI marker (Fireside HQ) ───────────────────────────── */ /* Cluster bubble (zoomed-out): amber circle + white count, tiered by size. Click zooms to expand into the individual pins. */ @@ -404,6 +421,11 @@
+ + @@ -575,7 +597,7 @@ function ensureMap() { map.addControl(new maplibregl.NavigationControl({ showCompass: false }), 'top-right'); popup = new maplibregl.Popup({ closeButton: true, closeOnClick: false, offset: 20 }); popup.on('close', () => { openPopupImei = null; popupStuck = false; }); - map.on('load', () => { POIS.forEach(addPoiMarker); updateVehScale(); }); + map.on('load', () => { POIS.forEach(addPoiMarker); OVERLAYS.forEach(addOverlay); buildLayersControl(); updateVehScale(); }); map.on('zoom', updateVehScale); // Re-cluster after any pan/zoom settles (live mode only). map.on('moveend', () => { if (mode === 'live') renderClusters(); }); @@ -594,6 +616,88 @@ function addPoiMarker(poi) { new maplibregl.Marker({ element: el, anchor: 'bottom' }).setLngLat([poi.lng, poi.lat]).addTo(map); } +// ============================================================================ +// Toggleable map overlays (reference layers: gas stations, …) +// ---------------------------------------------------------------------------- +// Each entry = a static GeoJSON in /layers/ rendered as a MapLibre SYMBOL layer +// that auto-declutters (icon-allow-overlap:false) and is OFF until toggled in +// the "Layers" control. To add another layer: drop its .geojson in layers/ and +// add one entry here (+ an iconSvg). Vehicle/cluster markers (DOM) stay on top. +// ============================================================================ +const GAS_PUMP_PATH = 'M19.77 7.23l.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33 0 1.38 1.12 2.5 2.5 2.5.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V9c0-.69-.28-1.32-.73-1.77zM12 10H6V5h6v5z'; +const SHELL_ICON_SVG = + '' + + '' + + ''; + +const OVERLAYS = [ + { id: 'shell', label: 'Shell stations', url: 'layers/shell_stations.geojson', + iconSvg: SHELL_ICON_SVG, nameKey: 'name', defaultOn: false }, + // future layers: add { id, label, url, iconSvg, nameKey, defaultOn } here. +]; + +function registerOverlayIcon(def) { + return new Promise(resolve => { + const imgId = 'ov-icon-' + def.id; + if (map.hasImage(imgId)) return resolve(imgId); + const img = new Image(40, 40); + img.onload = () => { if (!map.hasImage(imgId)) map.addImage(imgId, img, { pixelRatio: 2 }); resolve(imgId); }; + img.onerror = () => resolve(imgId); + img.src = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(def.iconSvg); + }); +} + +async function addOverlay(def) { + const srcId = 'ov-' + def.id, lyrId = 'ov-layer-' + def.id; + let data; + try { data = await (await fetch(def.url)).json(); } + catch (e) { console.warn('overlay load failed:', def.id, e); return; } + def._count = (data.features || []).length; + const imgId = await registerOverlayIcon(def); + if (!map.getSource(srcId)) map.addSource(srcId, { type: 'geojson', data }); + if (!map.getLayer(lyrId)) { + map.addLayer({ + id: lyrId, type: 'symbol', source: srcId, + layout: { + 'icon-image': imgId, + // ~8px zoomed out → ~16px zoomed in (image is 20 CSS px at icon-size 1). + 'icon-size': ['interpolate', ['linear'], ['zoom'], 6, 0.42, 11, 0.55, 16, 0.8], + 'icon-allow-overlap': false, // auto-declutter: hide overlapping icons at low zoom + 'icon-ignore-placement': false, + 'visibility': def.defaultOn ? 'visible' : 'none', + }, + }); + map.on('click', lyrId, e => { + const p = (e.features[0] && e.features[0].properties) || {}; + popup.setLngLat(e.lngLat) + .setHTML(`
${escapeHtml(p[def.nameKey] || def.label)}
${escapeHtml(p.brand || 'fuel station')}
`) + .addTo(map); + }); + map.on('mouseenter', lyrId, () => { map.getCanvas().style.cursor = 'pointer'; }); + map.on('mouseleave', lyrId, () => { map.getCanvas().style.cursor = ''; }); + } + buildLayersControl(); +} + +function buildLayersControl() { + const body = document.getElementById('layers-body'); + const wrap = document.getElementById('layers'); + if (!body || !wrap) return; + wrap.style.display = OVERLAYS.length ? '' : 'none'; + body.innerHTML = OVERLAYS.map(d => { + const lyrId = 'ov-layer-' + d.id; + const on = map.getLayer(lyrId) && map.getLayoutProperty(lyrId, 'visibility') === 'visible'; + const n = d._count != null ? ` ${d._count}` : ''; + return ``; + }).join(''); + body.querySelectorAll('input[type=checkbox]').forEach(cb => { + cb.addEventListener('change', () => { + const lyrId = cb.getAttribute('data-lyr'); + if (map.getLayer(lyrId)) map.setLayoutProperty(lyrId, 'visibility', cb.checked ? 'visible' : 'none'); + }); + }); +} + // ============================================================================ // Vehicle state (tri-state) // ============================================================================ @@ -1483,6 +1587,9 @@ document.getElementById('live-pill').addEventListener('click', backToLive); document.getElementById('legend-toggle').addEventListener('click', () => { document.getElementById('legend').classList.toggle('collapsed'); }); +document.getElementById('layers-toggle').addEventListener('click', () => { + document.getElementById('layers').classList.toggle('collapsed'); +}); // ============================================================================ // Reverse-geocoding (Nominatim) — queued, 1 req/sec, in-memory cache diff --git a/layers/shell_stations.geojson b/layers/shell_stations.geojson new file mode 100644 index 0000000..8814a25 --- /dev/null +++ b/layers/shell_stations.geojson @@ -0,0 +1 @@ +{"type": "FeatureCollection", "features": [{"type": "Feature", "properties": {"name": "Shell Kabuagi", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 30088444}, "geometry": {"type": "Point", "coordinates": [36.718419, -1.316594]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 30092268}, "geometry": {"type": "Point", "coordinates": [36.814074, -1.316337]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 30210342}, "geometry": {"type": "Point", "coordinates": [36.784895, -1.292004]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 30215041}, "geometry": {"type": "Point", "coordinates": [36.821731, -1.292514]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 30402252}, "geometry": {"type": "Point", "coordinates": [36.811142, -1.264944]}}, {"type": "Feature", "properties": {"name": "Shell Bellevue", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 30695844}, "geometry": {"type": "Point", "coordinates": [36.841704, -1.321222]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 295829498}, "geometry": {"type": "Point", "coordinates": [36.818551, -1.259212]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 344711386}, "geometry": {"type": "Point", "coordinates": [38.549144, -3.400363]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 344969183}, "geometry": {"type": "Point", "coordinates": [39.671241, -4.064245]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 344970554}, "geometry": {"type": "Point", "coordinates": [39.678266, -4.04045]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 344971084}, "geometry": {"type": "Point", "coordinates": [39.684952, -4.035198]}}, {"type": "Feature", "properties": {"name": "Shell Links Road Filling Station", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 346562706}, "geometry": {"type": "Point", "coordinates": [39.688222, -4.051857]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 415582755}, "geometry": {"type": "Point", "coordinates": [36.432908, -0.71861]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 490741522}, "geometry": {"type": "Point", "coordinates": [36.803669, -1.307743]}}, {"type": "Feature", "properties": {"name": "Shell Petrol Station", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 558923029}, "geometry": {"type": "Point", "coordinates": [36.741743, -1.288024]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 582803761}, "geometry": {"type": "Point", "coordinates": [36.817074, -1.310587]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 582803763}, "geometry": {"type": "Point", "coordinates": [36.827261, -1.305716]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 582803840}, "geometry": {"type": "Point", "coordinates": [37.267142, -1.520877]}}, {"type": "Feature", "properties": {"name": "Shell Makupa", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 612947282}, "geometry": {"type": "Point", "coordinates": [39.656827, -4.041392]}}, {"type": "Feature", "properties": {"name": "Shell Changamwe", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 612947302}, "geometry": {"type": "Point", "coordinates": [39.62732, -4.027279]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 703562830}, "geometry": {"type": "Point", "coordinates": [36.861223, -1.249864]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 703562919}, "geometry": {"type": "Point", "coordinates": [36.871498, -1.246981]}}, {"type": "Feature", "properties": {"name": "Shell - Ruiru", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 711491743}, "geometry": {"type": "Point", "coordinates": [36.958483, -1.149099]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 712868923}, "geometry": {"type": "Point", "coordinates": [36.886453, -1.293773]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 734051667}, "geometry": {"type": "Point", "coordinates": [36.922912, -1.256982]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 812840504}, "geometry": {"type": "Point", "coordinates": [36.80343, -1.230839]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 900302335}, "geometry": {"type": "Point", "coordinates": [36.875076, -1.232602]}}, {"type": "Feature", "properties": {"name": "Shell Avenue Service Station", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 911026324}, "geometry": {"type": "Point", "coordinates": [36.818863, -1.285422]}}, {"type": "Feature", "properties": {"name": "Shell Adams Arcade", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1045731889}, "geometry": {"type": "Point", "coordinates": [36.779709, -1.300601]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1147234418}, "geometry": {"type": "Point", "coordinates": [36.81745, -1.267364]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1320763086}, "geometry": {"type": "Point", "coordinates": [39.654867, -4.085069]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": "Indivdual", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1419926800}, "geometry": {"type": "Point", "coordinates": [34.295817, 0.181801]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1506606959}, "geometry": {"type": "Point", "coordinates": [36.740926, -1.265026]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1636429762}, "geometry": {"type": "Point", "coordinates": [36.068872, -0.284215]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": "Shell/BP", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1678061764}, "geometry": {"type": "Point", "coordinates": [36.859873, -1.31465]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1690703696}, "geometry": {"type": "Point", "coordinates": [35.871981, -1.090556]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1814694405}, "geometry": {"type": "Point", "coordinates": [37.655216, 0.03559]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1814694430}, "geometry": {"type": "Point", "coordinates": [37.642474, 0.05734]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1830086395}, "geometry": {"type": "Point", "coordinates": [37.077472, 0.016696]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1838955746}, "geometry": {"type": "Point", "coordinates": [35.293414, -0.363566]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1856237414}, "geometry": {"type": "Point", "coordinates": [34.280633, 0.634907]}}, {"type": "Feature", "properties": {"name": "Shell Bidii", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 1997615249}, "geometry": {"type": "Point", "coordinates": [36.848606, -1.279267]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 2137912798}, "geometry": {"type": "Point", "coordinates": [38.166679, -2.693933]}}, {"type": "Feature", "properties": {"name": "Shell Baraka", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 2218541216}, "geometry": {"type": "Point", "coordinates": [36.785711, -1.259949]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 2377336397}, "geometry": {"type": "Point", "coordinates": [39.662737, -4.047937]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 2462468244}, "geometry": {"type": "Point", "coordinates": [37.988219, 2.32971]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 2533881587}, "geometry": {"type": "Point", "coordinates": [36.816595, -1.281187]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 2653484553}, "geometry": {"type": "Point", "coordinates": [36.968782, -1.446789]}}, {"type": "Feature", "properties": {"name": "Shell Roysambu", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 2953872784}, "geometry": {"type": "Point", "coordinates": [36.890669, -1.217787]}}, {"type": "Feature", "properties": {"name": "Shell petrol station", "brand": null, "operator": "2NK", "brand_source": "name", "osm_type": "node", "osm_id": 3078763165}, "geometry": {"type": "Point", "coordinates": [36.952432, -0.424642]}}, {"type": "Feature", "properties": {"name": "Shell petrol station", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 3078776472}, "geometry": {"type": "Point", "coordinates": [36.952518, -0.421785]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 3243527416}, "geometry": {"type": "Point", "coordinates": [37.646147, -0.334861]}}, {"type": "Feature", "properties": {"name": "Isiolo Service Station", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 3247766463}, "geometry": {"type": "Point", "coordinates": [37.582829, 0.3519]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 3421681816}, "geometry": {"type": "Point", "coordinates": [36.314893, -0.500952]}}, {"type": "Feature", "properties": {"name": "Bajoo Shell Services", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 3683457938}, "geometry": {"type": "Point", "coordinates": [40.057779, 1.749142]}}, {"type": "Feature", "properties": {"name": "Buna Filling Station", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 3695322660}, "geometry": {"type": "Point", "coordinates": [39.509127, 2.786999]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 3729203207}, "geometry": {"type": "Point", "coordinates": [36.939718, -1.395443]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 3808532767}, "geometry": {"type": "Point", "coordinates": [36.641976, -1.10888]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 4210622090}, "geometry": {"type": "Point", "coordinates": [36.763624, -1.299065]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 4324873067}, "geometry": {"type": "Point", "coordinates": [36.662797, -1.245784]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 4461211795}, "geometry": {"type": "Point", "coordinates": [37.578977, 0.337182]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 4475364889}, "geometry": {"type": "Point", "coordinates": [38.362976, -3.405215]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 4685351383}, "geometry": {"type": "Point", "coordinates": [39.645824, -0.454161]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 4720565411}, "geometry": {"type": "Point", "coordinates": [34.75581, -0.625556]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 4914118412}, "geometry": {"type": "Point", "coordinates": [36.427394, -0.697715]}}, {"type": "Feature", "properties": {"name": "Shell Petrol Station, Muguga", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 4946660224}, "geometry": {"type": "Point", "coordinates": [37.157952, -1.061481]}}, {"type": "Feature", "properties": {"name": "Shell New Thika Rd, Ruiru", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 4947103423}, "geometry": {"type": "Point", "coordinates": [36.958055, -1.160387]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 4972148621}, "geometry": {"type": "Point", "coordinates": [36.663491, -1.226429]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5119552023}, "geometry": {"type": "Point", "coordinates": [36.840393, -1.229222]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5119573528}, "geometry": {"type": "Point", "coordinates": [36.838234, -1.264064]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5126219526}, "geometry": {"type": "Point", "coordinates": [37.095977, -0.977475]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5126247329}, "geometry": {"type": "Point", "coordinates": [37.160111, -0.929697]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5162725223}, "geometry": {"type": "Point", "coordinates": [36.903025, -1.011913]}}, {"type": "Feature", "properties": {"name": "Shell Petrol Station Kajiado", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5179571022}, "geometry": {"type": "Point", "coordinates": [36.799667, -1.835716]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5181243643}, "geometry": {"type": "Point", "coordinates": [37.440173, -1.180887]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5217418921}, "geometry": {"type": "Point", "coordinates": [36.827944, -1.280736]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5327749961}, "geometry": {"type": "Point", "coordinates": [36.828308, -1.171399]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5340449107}, "geometry": {"type": "Point", "coordinates": [36.801048, -1.262778]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5392739324}, "geometry": {"type": "Point", "coordinates": [35.296916, 0.540157]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 5403105422}, "geometry": {"type": "Point", "coordinates": [35.967056, 0.448948]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5496066065}, "geometry": {"type": "Point", "coordinates": [36.84313, -1.292007]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5496079228}, "geometry": {"type": "Point", "coordinates": [36.854441, -1.295157]}}, {"type": "Feature", "properties": {"name": "Shell Kasarani Petrol Station", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 5526332569}, "geometry": {"type": "Point", "coordinates": [36.895867, -1.218327]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5539579719}, "geometry": {"type": "Point", "coordinates": [36.856284, -1.30385]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5540791550}, "geometry": {"type": "Point", "coordinates": [36.751887, -1.195935]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5569591300}, "geometry": {"type": "Point", "coordinates": [36.842468, -1.3074]}}, {"type": "Feature", "properties": {"name": "Shell Banana", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5581701614}, "geometry": {"type": "Point", "coordinates": [36.759722, -1.175701]}}, {"type": "Feature", "properties": {"name": "Shell Kiserian", "brand": "Shell", "operator": "Vivo", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5588931919}, "geometry": {"type": "Point", "coordinates": [36.686175, -1.432004]}}, {"type": "Feature", "properties": {"name": "Mwingi Shell Petrol Station", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5768445294}, "geometry": {"type": "Point", "coordinates": [38.044514, -0.937425]}}, {"type": "Feature", "properties": {"name": "Mart Petrol Station", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5781632986}, "geometry": {"type": "Point", "coordinates": [35.746217, 0.494496]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 5887135685}, "geometry": {"type": "Point", "coordinates": [36.981924, -1.263474]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6054282205}, "geometry": {"type": "Point", "coordinates": [39.662713, -4.060892]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6054858991}, "geometry": {"type": "Point", "coordinates": [39.663984, -4.043209]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6054861952}, "geometry": {"type": "Point", "coordinates": [36.584131, -0.984791]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6054877097}, "geometry": {"type": "Point", "coordinates": [35.882185, -1.089833]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6054980226}, "geometry": {"type": "Point", "coordinates": [36.501316, -0.769528]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 6063644317}, "geometry": {"type": "Point", "coordinates": [36.776239, -1.057588]}}, {"type": "Feature", "properties": {"name": "Shell Filling station", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6072960948}, "geometry": {"type": "Point", "coordinates": [39.654747, -4.084926]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6086991186}, "geometry": {"type": "Point", "coordinates": [37.004306, -1.456045]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6105930796}, "geometry": {"type": "Point", "coordinates": [34.948265, -0.780234]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6106202680}, "geometry": {"type": "Point", "coordinates": [35.002629, 1.01741]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6140765579}, "geometry": {"type": "Point", "coordinates": [37.159777, -0.929519]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6144610331}, "geometry": {"type": "Point", "coordinates": [37.670579, -0.074245]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6147580921}, "geometry": {"type": "Point", "coordinates": [35.251383, 0.524964]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6149443773}, "geometry": {"type": "Point", "coordinates": [35.269825, 0.489345]}}, {"type": "Feature", "properties": {"name": "Shell Petrol Station", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 6149634448}, "geometry": {"type": "Point", "coordinates": [35.297389, 0.465501]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6198796724}, "geometry": {"type": "Point", "coordinates": [36.876, -1.248207]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6207691351}, "geometry": {"type": "Point", "coordinates": [37.066139, -1.043083]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6207707073}, "geometry": {"type": "Point", "coordinates": [37.071543, -1.042001]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6209964953}, "geometry": {"type": "Point", "coordinates": [37.071925, -1.037044]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 6212995383}, "geometry": {"type": "Point", "coordinates": [37.137857, -0.841126]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6213405879}, "geometry": {"type": "Point", "coordinates": [37.138349, -0.485965]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6216321668}, "geometry": {"type": "Point", "coordinates": [36.662815, -1.347761]}}, {"type": "Feature", "properties": {"name": "Shell Petrol Station", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 6218487553}, "geometry": {"type": "Point", "coordinates": [36.686915, -1.416823]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6218698870}, "geometry": {"type": "Point", "coordinates": [36.755199, -1.396852]}}, {"type": "Feature", "properties": {"name": "PETRO Shelly", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 6222293185}, "geometry": {"type": "Point", "coordinates": [39.667207, -4.085731]}}, {"type": "Feature", "properties": {"name": "Shell Maanzoni", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6226894926}, "geometry": {"type": "Point", "coordinates": [37.107005, -1.516527]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6229374240}, "geometry": {"type": "Point", "coordinates": [37.131763, -1.532784]}}, {"type": "Feature", "properties": {"name": "Shell Kitengela", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 6229505975}, "geometry": {"type": "Point", "coordinates": [36.954102, -1.50442]}}, {"type": "Feature", "properties": {"name": "shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6229624406}, "geometry": {"type": "Point", "coordinates": [37.198837, -1.735489]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6232739137}, "geometry": {"type": "Point", "coordinates": [37.477328, -2.081484]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6235829860}, "geometry": {"type": "Point", "coordinates": [39.547043, -3.973832]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6235830590}, "geometry": {"type": "Point", "coordinates": [39.60037, -4.007792]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6236062090}, "geometry": {"type": "Point", "coordinates": [34.557734, 0.580828]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6236068237}, "geometry": {"type": "Point", "coordinates": [38.012171, -1.365272]}}, {"type": "Feature", "properties": {"name": "Shell Filling Station", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 6241664256}, "geometry": {"type": "Point", "coordinates": [36.364412, 0.035]}}, {"type": "Feature", "properties": {"name": "Shell Chaka", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6244921195}, "geometry": {"type": "Point", "coordinates": [36.999992, -0.361651]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6246803075}, "geometry": {"type": "Point", "coordinates": [37.072986, 0.005805]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6251561800}, "geometry": {"type": "Point", "coordinates": [36.710164, -1.260591]}}, {"type": "Feature", "properties": {"name": "Shell service station Fedha", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6259798932}, "geometry": {"type": "Point", "coordinates": [36.895595, -1.316073]}}, {"type": "Feature", "properties": {"name": "Shell Service Station - Kayole", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6259810690}, "geometry": {"type": "Point", "coordinates": [36.90304, -1.2829]}}, {"type": "Feature", "properties": {"name": "Shell Mumias Road", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6259860371}, "geometry": {"type": "Point", "coordinates": [36.88066, -1.286405]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6263511612}, "geometry": {"type": "Point", "coordinates": [35.614012, 3.094471]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": "Shell Petrol Station", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6327543347}, "geometry": {"type": "Point", "coordinates": [35.293509, 0.509984]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6633204913}, "geometry": {"type": "Point", "coordinates": [34.8022, -0.144338]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6644488886}, "geometry": {"type": "Point", "coordinates": [36.426665, -0.779415]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6716512885}, "geometry": {"type": "Point", "coordinates": [39.87102, -3.578128]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6793044096}, "geometry": {"type": "Point", "coordinates": [40.117773, -3.214362]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6819692388}, "geometry": {"type": "Point", "coordinates": [36.911201, -1.273195]}}, {"type": "Feature", "properties": {"name": "Shell Petrol Station", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6851086245}, "geometry": {"type": "Point", "coordinates": [37.111221, -1.055007]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6860253187}, "geometry": {"type": "Point", "coordinates": [37.454875, -0.542158]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6882011852}, "geometry": {"type": "Point", "coordinates": [37.636552, 0.06024]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6895782975}, "geometry": {"type": "Point", "coordinates": [37.261577, -0.71496]}}, {"type": "Feature", "properties": {"name": "shell- Bonje", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6938700260}, "geometry": {"type": "Point", "coordinates": [39.562412, -3.991998]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6945529552}, "geometry": {"type": "Point", "coordinates": [34.130811, 0.453207]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 6969176798}, "geometry": {"type": "Point", "coordinates": [34.794978, -0.130428]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7166621203}, "geometry": {"type": "Point", "coordinates": [40.121388, -3.211576]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7166621204}, "geometry": {"type": "Point", "coordinates": [38.581827, -3.39087]}}, {"type": "Feature", "properties": {"name": "shell makupa service station", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7172031316}, "geometry": {"type": "Point", "coordinates": [39.656857, -4.040825]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7187879248}, "geometry": {"type": "Point", "coordinates": [36.15036, -0.322371]}}, {"type": "Feature", "properties": {"name": "shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7227297576}, "geometry": {"type": "Point", "coordinates": [34.682137, -0.074322]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7239126633}, "geometry": {"type": "Point", "coordinates": [34.756277, 0.28749]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7305927852}, "geometry": {"type": "Point", "coordinates": [36.706266, -1.323004]}}, {"type": "Feature", "properties": {"name": "Shell- Syokimau", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7507287888}, "geometry": {"type": "Point", "coordinates": [36.907769, -1.357374]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7643261185}, "geometry": {"type": "Point", "coordinates": [36.875751, -1.210901]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7872591802}, "geometry": {"type": "Point", "coordinates": [37.095865, -0.973363]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7893551877}, "geometry": {"type": "Point", "coordinates": [35.284074, -0.366585]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7934573084}, "geometry": {"type": "Point", "coordinates": [35.120238, 0.87809]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 7988261701}, "geometry": {"type": "Point", "coordinates": [35.882577, -1.089807]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8039934769}, "geometry": {"type": "Point", "coordinates": [37.455485, -0.541871]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8047307634}, "geometry": {"type": "Point", "coordinates": [38.007156, -1.358313]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8050570392}, "geometry": {"type": "Point", "coordinates": [39.53407, -3.92977]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 8182514303}, "geometry": {"type": "Point", "coordinates": [36.377656, -0.264808]}}, {"type": "Feature", "properties": {"name": "Shell Ruai", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8202067662}, "geometry": {"type": "Point", "coordinates": [37.016097, -1.276187]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8231893217}, "geometry": {"type": "Point", "coordinates": [36.91699, -1.170384]}}, {"type": "Feature", "properties": {"name": "Shell - Eastern By-pass - Ruiru", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8247882582}, "geometry": {"type": "Point", "coordinates": [36.964879, -1.166976]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8293614674}, "geometry": {"type": "Point", "coordinates": [36.962424, -1.281858]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8318718279}, "geometry": {"type": "Point", "coordinates": [36.690323, -1.280476]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8321307638}, "geometry": {"type": "Point", "coordinates": [36.634916, -1.281238]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8321307639}, "geometry": {"type": "Point", "coordinates": [36.609868, -1.267623]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8338714141}, "geometry": {"type": "Point", "coordinates": [36.989696, -1.234142]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8338714151}, "geometry": {"type": "Point", "coordinates": [37.315826, -1.267493]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8345317201}, "geometry": {"type": "Point", "coordinates": [36.879297, -1.256284]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8371880141}, "geometry": {"type": "Point", "coordinates": [36.958715, -1.425451]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 8483709617}, "geometry": {"type": "Point", "coordinates": [36.871819, -0.78364]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 8862700293}, "geometry": {"type": "Point", "coordinates": [37.104729, -1.28234]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 9004506167}, "geometry": {"type": "Point", "coordinates": [36.924224, -1.231358]}}, {"type": "Feature", "properties": {"name": "Shell Mirema", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 9014259343}, "geometry": {"type": "Point", "coordinates": [36.892432, -1.213808]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 9028867156}, "geometry": {"type": "Point", "coordinates": [37.25047, -1.459477]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 9048281880}, "geometry": {"type": "Point", "coordinates": [36.365863, 0.027305]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 9053460332}, "geometry": {"type": "Point", "coordinates": [35.843587, -0.20372]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 10080456017}, "geometry": {"type": "Point", "coordinates": [36.84025, -1.229246]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 10255650224}, "geometry": {"type": "Point", "coordinates": [39.744896, -3.936283]}}, {"type": "Feature", "properties": {"name": "Shell Petrol Station", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 10971302670}, "geometry": {"type": "Point", "coordinates": [36.740804, -1.286734]}}, {"type": "Feature", "properties": {"name": "Shell -Bombolulu", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 11500364389}, "geometry": {"type": "Point", "coordinates": [39.697377, -4.025633]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 11711795482}, "geometry": {"type": "Point", "coordinates": [36.720914, -1.313698]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 12163148139}, "geometry": {"type": "Point", "coordinates": [36.799912, -1.274671]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 12165032865}, "geometry": {"type": "Point", "coordinates": [36.781587, -1.307959]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 12489868997}, "geometry": {"type": "Point", "coordinates": [34.744859, 0.28095]}}, {"type": "Feature", "properties": {"name": "Shell Syokimau", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 12600151901}, "geometry": {"type": "Point", "coordinates": [36.927818, -1.378091]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 12886546509}, "geometry": {"type": "Point", "coordinates": [36.90678, -1.262862]}}, {"type": "Feature", "properties": {"name": "Shell Gas Station", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 13088820396}, "geometry": {"type": "Point", "coordinates": [36.427412, -0.779732]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 13446964574}, "geometry": {"type": "Point", "coordinates": [34.482215, -1.230649]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 13446964578}, "geometry": {"type": "Point", "coordinates": [34.53639, -0.900865]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 13447042942}, "geometry": {"type": "Point", "coordinates": [34.720706, 0.078482]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 13528448115}, "geometry": {"type": "Point", "coordinates": [35.163178, 0.600804]}}, {"type": "Feature", "properties": {"name": "shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "node", "osm_id": 13714210044}, "geometry": {"type": "Point", "coordinates": [34.801363, -0.143442]}}, {"type": "Feature", "properties": {"name": "shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "node", "osm_id": 13720608494}, "geometry": {"type": "Point", "coordinates": [34.727069, -0.077947]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 123365084}, "geometry": {"type": "Point", "coordinates": [36.824838, -1.282701]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 125107079}, "geometry": {"type": "Point", "coordinates": [36.82273, -1.2799]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 125336232}, "geometry": {"type": "Point", "coordinates": [36.811096, -1.289727]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 126936993}, "geometry": {"type": "Point", "coordinates": [36.838738, -1.287955]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 126995763}, "geometry": {"type": "Point", "coordinates": [36.83183, -1.272506]}}, {"type": "Feature", "properties": {"name": "Shell Service Station - Jogoo Road", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 129323643}, "geometry": {"type": "Point", "coordinates": [36.860244, -1.295715]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 133548150}, "geometry": {"type": "Point", "coordinates": [36.817225, -1.268949]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 144188726}, "geometry": {"type": "Point", "coordinates": [36.817766, -1.310807]}}, {"type": "Feature", "properties": {"name": "Shell- Lavington", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "way", "osm_id": 226322138}, "geometry": {"type": "Point", "coordinates": [36.769286, -1.280811]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 226714111}, "geometry": {"type": "Point", "coordinates": [36.708022, -1.322412]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 238857325}, "geometry": {"type": "Point", "coordinates": [36.802726, -1.263021]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 366568545}, "geometry": {"type": "Point", "coordinates": [36.828502, -1.30349]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 390104534}, "geometry": {"type": "Point", "coordinates": [34.76444, -0.09443]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 483211211}, "geometry": {"type": "Point", "coordinates": [36.09429, -0.282248]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 488459901}, "geometry": {"type": "Point", "coordinates": [36.075122, -0.285481]}}, {"type": "Feature", "properties": {"name": "Shell Kitengela ex-Engen", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 536796727}, "geometry": {"type": "Point", "coordinates": [36.954337, -1.491085]}}, {"type": "Feature", "properties": {"name": "Shell Voi", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "way", "osm_id": 593734920}, "geometry": {"type": "Point", "coordinates": [38.549126, -3.400372]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": null, "operator": null, "brand_source": "name", "osm_type": "way", "osm_id": 642076596}, "geometry": {"type": "Point", "coordinates": [36.566545, -0.865417]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 686179946}, "geometry": {"type": "Point", "coordinates": [36.834388, -1.275817]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 732602668}, "geometry": {"type": "Point", "coordinates": [37.452256, -0.536827]}}, {"type": "Feature", "properties": {"name": "Shell Petrol Station - Greenspan", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 977833647}, "geometry": {"type": "Point", "coordinates": [36.902407, -1.288893]}}, {"type": "Feature", "properties": {"name": "Shell petrol station (feroze)", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1055608664}, "geometry": {"type": "Point", "coordinates": [36.906097, -1.26303]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1069555494}, "geometry": {"type": "Point", "coordinates": [34.971231, -0.268103]}}, {"type": "Feature", "properties": {"name": "Shell Hurlingham", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1088482284}, "geometry": {"type": "Point", "coordinates": [36.799606, -1.295405]}}, {"type": "Feature", "properties": {"name": "Shell Service Station - Embakassi", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1107378445}, "geometry": {"type": "Point", "coordinates": [36.917619, -1.317926]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1107729725}, "geometry": {"type": "Point", "coordinates": [36.683097, -1.328958]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1110216588}, "geometry": {"type": "Point", "coordinates": [37.524927, -2.831336]}}, {"type": "Feature", "properties": {"name": "Shell Kahawa Sukari", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1135425767}, "geometry": {"type": "Point", "coordinates": [36.931934, -1.188788]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1222533725}, "geometry": {"type": "Point", "coordinates": [34.691528, -0.074421]}}, {"type": "Feature", "properties": {"name": "Shell Service Station - Likoni Road", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1273152921}, "geometry": {"type": "Point", "coordinates": [36.856227, -1.303854]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1290701573}, "geometry": {"type": "Point", "coordinates": [36.799548, -1.835509]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": null, "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1413265354}, "geometry": {"type": "Point", "coordinates": [36.800975, -2.538055]}}, {"type": "Feature", "properties": {"name": "Shell Fuel Station - Tala", "brand": null, "operator": null, "brand_source": "name", "osm_type": "way", "osm_id": 1434009884}, "geometry": {"type": "Point", "coordinates": [37.315706, -1.26749]}}, {"type": "Feature", "properties": {"name": "Shell", "brand": "Shell", "operator": "Shell", "brand_source": "brand_tag", "osm_type": "way", "osm_id": 1497383075}, "geometry": {"type": "Point", "coordinates": [36.98704, -1.266132]}}]} \ No newline at end of file