PHPackages                             a2nt/silverstripe-mapboxfield - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. a2nt/silverstripe-mapboxfield

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

a2nt/silverstripe-mapboxfield
=============================

Description Mapbox CMS field, Geocoding and Frontend UI for SilverStripe 4

0.0.3(6y ago)14111[7 PRs](https://github.com/a2nt/silverstripe-mapboxfield/pulls)BSD-3-ClausePHP

Since Nov 29Pushed 2y ago2 watchersCompare

[ Source](https://github.com/a2nt/silverstripe-mapboxfield)[ Packagist](https://packagist.org/packages/a2nt/silverstripe-mapboxfield)[ RSS](/packages/a2nt-silverstripe-mapboxfield/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (14)Used By (0)

SilverStripe Mapbox Field
=========================

[](#silverstripe-mapbox-field)

Extends:

- Symbiote\\Addressable\\Geocodable

Replaces:

- dynamic/silverstripe-elemental-customer-service
- bigfork/silverstripe-mapboxfield

Adds a Mapbox map to the CMS with a draggable marker to allow content authors to add a location to a DataObject or Page.

[![](docs/img/cms.png)](docs/img/cms.png)

Address will be geocoded automatically or manually using mapbox map.

Adds DataObject Extension to store and render GeoJSON data.

Installation
------------

[](#installation)

`composer require a2nt/silverstripe-mapboxfield:*`

Configuration
-------------

[](#configuration)

```
---
Name: 'app-map'
After:
  - 'silverstripe-mapboxfield'
  - 'addressable'
---
SilverStripe\Core\Injector\Injector:
  A2nt\SilverStripeMapboxField\MarkerExtension:
    properties:
      geocoder: %$Symbiote\Addressable\MapboxGeocodeService
  Symbiote\Addressable\GeocodeServiceInterface:
    class: Symbiote\Addressable\MapboxGeocodeService

Symbiote\Addressable\MapboxGeocodeService:
  mapbox_api_key: 'your mapbox access token'
A2nt\SilverStripeMapboxField\MapboxField:
  map_style: 'mapbox://styles/mapbox/light-v10'
```

Usage
-----

[](#usage)

```
class MyDataObjectMapPin extends DataObject
{
    private static $extensions = [
        Addressable::class,
        MarkerExtension::class,
    ];
}
```

Example
-------

[](#example)

```
class MyPage extends \Page
{
    private static $db = [
        'MapZoom' => 'Int',
    ];

    public function MapPins()
    {
        return MyDataObjectMapPin::get();
    }

    public function getGeoJSON()
    {
        $pins = [];
        foreach ($this->MapPins() as $pin) {
            $pins[] = $pin->getGeo();
        }
        return json_encode([
            'type' => 'MarkerCollection',
            'features' => $pins
        ]);
    }
}
```

create MyDataObjectMapPin.ss template to render popup content

MyPage.ss

```

```

Process it with javascript on frontend, you can find an example at: [https://github.com/a2nt/webpack-bootstrap-ui-kit/blob/master/src/js/\_components/\_ui.map.api.js](https://github.com/a2nt/webpack-bootstrap-ui-kit/blob/master/src/js/_components/_ui.map.api.js)

###  Health Score

29

—

LowBetter than 63% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~66 days

Total

3

Last Release

2537d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9c10d444da3afa00b1851c2595f47190836de733c6f49855d2a751b1e613f78d?d=identicon)[a2nt](/maintainers/a2nt)

---

Top Contributors

[![a2nt](https://avatars.githubusercontent.com/u/672794?v=4)](https://github.com/a2nt "a2nt (14 commits)")[![lozcalver](https://avatars.githubusercontent.com/u/1655548?v=4)](https://github.com/lozcalver "lozcalver (6 commits)")[![wernerkrauss](https://avatars.githubusercontent.com/u/1043925?v=4)](https://github.com/wernerkrauss "wernerkrauss (1 commits)")

---

Tags

silverstripemapmapbox

### Embed Badge

![Health badge](/badges/a2nt-silverstripe-mapboxfield/health.svg)

```
[![Health](https://phpackages.com/badges/a2nt-silverstripe-mapboxfield/health.svg)](https://phpackages.com/packages/a2nt-silverstripe-mapboxfield)
```

###  Alternatives

[silverstripe/subsites

Run multiple sites from a single SilverStripe install.

67389.9k17](/packages/silverstripe-subsites)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46292.3k7](/packages/symbiote-silverstripe-advancedworkflow)[dynamic/silverstripe-locator

SilverStripe Locator Module. Show locations on a map. Search by geoposition.

2313.2k1](/packages/dynamic-silverstripe-locator)[undefinedoffset/silverstripe-keyboardshortcuts

Adds keyboard shortcuts for common tasks to SilverStripe 4.0+ (ctrl/command+s for save anyone?)

1811.8k](/packages/undefinedoffset-silverstripe-keyboardshortcuts)[wedevelopnl/silverstripe-elemental-grid

Elemental grid module

1013.9k2](/packages/wedevelopnl-silverstripe-elemental-grid)[adrhumphreys/silverstripe-textdropdownfield

A text field combined with a dropdown field.

106.0k](/packages/adrhumphreys-silverstripe-textdropdownfield)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
