# Mapbox SDK for .NET

## Overview

Mapbox SDK for .NET is a set of NuGet packages to allow developers to use Mapbox services in their mobile applications built with .NET. It means we have

* [Mapbox SDK for .NET Android](https://www.nuget.org/packages/Com.Mapbox.Maps.Android/)
* [Mapbox SDK for .NET iOS](https://www.nuget.org/packages/MapboxMapsObjC.iOS/)
* [Mapbox SDK for .NET MAUI](https://www.nuget.org/packages/Mapbox.Maui/)

## Quick-start

Here are step-by-step quick-starts on how to integrate Mapbox SDK to a .NET mobile application

* [How to use Mapbox SDK in .NET Android](https://tuyen-vuduc.tech/how-to-use-mapbox-for-your-dotnet-android-app)
* [How to use Mapbox SDK in .NET iOS](https://tuyen-vuduc.tech/how-to-use-mapbox-in-your-net-ios-app)
* [How to use Mapbox SDK in .NET MAUI](https://tuyen-vuduc.tech/how-to-use-mapbox-in-your-dotnet-maui-app)

This document provides additional guides and examples based on[ the official document from Mapbox](https://docs.mapbox.com/#maps).

## License

Mapbox SDK for .NET is open sourced under [BSD-3-Clause license](https://github.com/tuyen-vuduc/mapbox-maui/blob/main/LICENSE). You are freely to use and make changes. However, this license doesn't override [the license from Mapbox](https://www.mapbox.com/legal/tos).


# Motivation

Mapbox SDK is one of the best maps and location service out there in term of pricing in comparison to Google Maps. [Tuyen Vu ](https://github.com/tuyen-vuduc)used to integrate Mapbox SDK to his client mobile apps since 2017. There are prebuilt Mapbox libraries for .NET at that time, but they weren't built well, then he decided to create his own version of Mapbox SDK for Xamarin (bought by Microsoft in 2016) when he still runs [Naxam Co. Ltd.](https://github.com/naxam) Later on, he and his team kept the effort to maintain the libraries until 2020 when Naxam stopped its missions.

Back in 2022, there are many requests from companies asked for the upgrade of the libraries to its latest version, v10+ because the lower versions will no longer get support from Mapbox in 2023. It was really a big challenge, because [Tuyen Vu](https://tuyen-vuduc.tech) no longer has that plenty of spare time while he has a busy, full-time job. In fact, his first attempt to upgrade the library to v10.5 was in 2021, but he failed because Mapbox v10 is totally different from the previous versions. There are many reasons for that failure:

* Artifacts (Android AARs, JARs, iOS's frameworks) are distributed privately
* iOS frameworks are no longer fully Objective-C compatible
* Xamarin was changing to be part of .NET6+
* Xamarin.Forms was changing to .NET MAUI

As a developer, he didn't allow him to quit easily, he finally delivered Mapbox SDK for .NET v10.11.1 by July 17, 2023 after almost 2 years from the first attempt and more than 1 year since he was back on track.&#x20;

He hopes his work will help .NET community a lot by providing them another option to work with maps and location in a mobile app. He decides to make the SDK free and open source so that everyone can benefit, provide feedbacks, and contribute to improve it.


# Sponsors & Sponsoring

## Sponsors

For years of maintaining the library, there are many supports from companies who use my libraries in their apps. The below table lists out who used to sponsor and allowed to be shown.

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><h2>Polaris®</h2></td><td>An American automotive manufacturer</td><td><span data-gb-custom-inline data-tag="emoji" data-code="1f947">🥇</span></td><td><a href="https://www.polaris.com/en-us/">https://www.polaris.com/en-us/</a></td><td><a href="https://2517529348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyYHMSApyuKEhV4N5JXLZ%2Fuploads%2FXoiQBvCRbW6KovHgFKvP%2F230x0w.webp?alt=media&amp;token=e6d3655a-d56e-43a5-9073-292a1c8ea484">230x0w.webp</a></td></tr><tr><td><h2>DAX</h2></td><td>Specialist indenfor el- og fiberdistribution</td><td><span data-gb-custom-inline data-tag="emoji" data-code="1f948">🥈</span></td><td><a href="https://dax.dk/">https://dax.dk/</a></td><td><a href="https://2517529348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyYHMSApyuKEhV4N5JXLZ%2Fuploads%2FzauAUXqIYbDJriPxI6aC%2FScreenshot%202023-07-20%20at%2022.16.50.png?alt=media&amp;token=433b1608-f332-425b-aa6d-a9075e164077">Screenshot 2023-07-20 at 22.16.50.png</a></td></tr><tr><td><h2>NWS</h2></td><td>Together with your challenge</td><td><span data-gb-custom-inline data-tag="emoji" data-code="1f948">🥈</span></td><td><a href="https://newwave.vn/">https://newwave.vn/</a></td><td><a href="https://2517529348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyYHMSApyuKEhV4N5JXLZ%2Fuploads%2Fin5Q1Qa59NrjMQr1uaQa%2Flogo-1.webp?alt=media&amp;token=7c6779ab-268b-4f0f-813d-5be82f8802c5">logo-1.webp</a></td></tr></tbody></table>

## Sponsoring

Mapbox SDK for .NET is a large set of NuGet packages around 20+ packages in total and it is currently only maintained by [Tuyen Vu](https://tuyen-vuduc.tech) in his spare time. To keep the project is constantly up-to-date and well maintained, he is always looking for sponsors from the companies and the developers who find this work benefit to their business.

### Sponsoring benefits

* Be the first one to use the latest version of the native SDKs
* Be the first one to get the updates about fixes/enhancements
* Be named in the sponsor table

### How to sponsor

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td></td><td><a href="https://www.buymeacoffee.com/tuyen.vuduc">Buy me a coffee</a></td><td><img src="https://2517529348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyYHMSApyuKEhV4N5JXLZ%2Fuploads%2F0nAwqt9Ybl8p2I1mZNEx%2Fbmc_qr%20(1).png?alt=media&amp;token=b611e026-2da7-4f11-bedb-d6d68d72c768" alt=""></td></tr><tr><td></td><td><a href="https://paypal.me/tuyenvd">Via PayPal</a></td><td><img src="https://2517529348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyYHMSApyuKEhV4N5JXLZ%2Fuploads%2F6nVwRQ2B8yO0ydnl1nTW%2Fqrcode_69144342_57ccd35d9da20a35076ac469f33ce86b.png?alt=media&amp;token=61b25345-3f4b-494b-8bb3-1461b8716d82" alt=""></td></tr></tbody></table>


# Apps

&#x20;is the list of the apps that use [Mapbox SDK for .NET](https://mapbox.tuyen-vuduc.tech/).

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><h2>Polaris®</h2></td><td>.NET MAUI/Xamarin.Forms</td><td></td><td><a href="https://apps.apple.com/us/app/polaris/id493558794">https://apps.apple.com/us/app/polaris/id493558794</a></td><td><a href="https://2517529348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyYHMSApyuKEhV4N5JXLZ%2Fuploads%2FXoiQBvCRbW6KovHgFKvP%2F230x0w.webp?alt=media&amp;token=e6d3655a-d56e-43a5-9073-292a1c8ea484">230x0w.webp</a></td></tr><tr><td><h2>FlexGrid Basic</h2></td><td>Xamarin.Forms</td><td></td><td><a href="https://apps.apple.com/us/app/dax-flexgrid-basic/id1257096407">https://apps.apple.com/us/app/dax-flexgrid-basic/id1257096407</a></td><td><a href="https://2517529348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyYHMSApyuKEhV4N5JXLZ%2Fuploads%2FNhf9r6POK8JetHSnEcKe%2Fflexgrid.webp?alt=media&amp;token=17549ac2-f983-45b3-b3fb-cd65bfa60e8e">flexgrid.webp</a></td></tr><tr><td><h2>App 3</h2></td><td>.NET iOS</td><td></td><td></td><td><a href="https://2517529348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyYHMSApyuKEhV4N5JXLZ%2Fuploads%2FwZ8dcXUBDlPxwfSHqXVE%2Fapp-1013616_1280.jpg?alt=media&amp;token=a2cc4268-e810-4078-96c5-4bf74640754f">app-1013616_1280.jpg</a></td></tr></tbody></table>


# NuGet packages

Here are the list of main NuGet packages.

<table><thead><tr><th width="82.33333333333331">#</th><th>Name</th><th>Note</th></tr></thead><tbody><tr><td>1</td><td><a href="https://www.nuget.org/packages/Mapbox.Maui">Mapbox SDK for .NET MAUI</a></td><td><a href="https://tuyen-vuduc.tech/how-to-use-mapbox-in-your-dotnet-maui-app">Get started</a></td></tr><tr><td>2</td><td><a href="https://www.nuget.org/packages/MapboxMapsObjC.iOS/">Mapbox SDK for .NET iOS</a></td><td><a href="https://tuyen-vuduc.tech/how-to-use-mapbox-in-your-net-ios-app">Get started</a></td></tr><tr><td>3</td><td><a href="https://www.nuget.org/packages/Com.Mapbox.Maps.Android/">Mapbox SDK for .NET Android</a></td><td><a href="https://tuyen-vuduc.tech/how-to-use-mapbox-for-your-dotnet-android-app">Get started</a></td></tr></tbody></table>


# Tutorial


# Examples

<table><thead><tr><th width="68">#</th><th>Title</th><th>Links</th></tr></thead><tbody><tr><td>1</td><td></td><td><ul><li>.NET iOS</li><li>.NET Android</li><li>.NET MAUI</li><li>iOS Swift</li><li>iOS Android</li></ul></td></tr><tr><td>2</td><td></td><td></td></tr><tr><td>3</td><td></td><td></td></tr></tbody></table>


# User location

<details>

<summary>Step1: Creating your organization</summary>

</details>

<details>

<summary>Step 2: Inviting your team</summary>

</details>

<details>

<summary>Step 3: Making your first post</summary>

</details>

<details>

<summary>Step 4: Publishing a post</summary>

</details>


# Markers and annotations


# Annotations


# View annotations


# Map styles


# Camera and animations


# User interaction


# Offline


# For Developers

{% hint style="info" %}
**Good to know:** depending on the product you're building, it can be useful to explicitly document use cases. Got a product that can be used by a bunch of people in different ways? Maybe consider splitting it out!
{% endhint %}

## GitHub Integrations

Cras mattis consectetur purus sit amet fermentum. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

{% tabs %}
{% tab title="Installing" %}
Sed posuere consectetur est at lobortis. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean lacinia bibendum nulla sed consectetur. Maecenas sed diam eget risus varius blandit sit amet non magna.

```
string | ComponentClass<any, any> | FunctionComponent<any>
```

{% endtab %}

{% tab title="Second tab" %}
Maecenas faucibus mollis interdum. Donec id elit non mi porta gravida at eget metus. Donec ullamcorper nulla non metus auctor fringilla. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
{% endtab %}
{% endtabs %}


# For Designers

{% hint style="info" %}
**Good to know:** depending on the product you're building, it can be useful to explicitly document use cases. Got a product that can be used by a bunch of people in different ways? Maybe consider splitting it out!
{% endhint %}

## Figma Integrations

{% tabs %}
{% tab title="Installing" %}
{% embed url="<https://www.figma.com/community/plugin/950514102619019349/Automater>" %}
{% endtab %}

{% tab title="Configuring" %}
Maecenas faucibus mollis interdum. Donec id elit non mi porta gravida at eget metus. Donec ullamcorper nulla non metus auctor fringilla. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
{% endtab %}

{% tab title="Customizing" %}

{% endtab %}
{% endtabs %}


