windowsforms-devexpress-dot-xtramap-f48bc3d1.md
A data provider that obtains vector tiles from Mapbox Service.
Namespace : DevExpress.XtraMap
Assembly : DevExpress.XtraMap.v25.2.dll
NuGet Package : DevExpress.Win.Map
public class MapboxDataProvider :
UriBasedVectorTileDataProvider
Public Class MapboxDataProvider
Inherits UriBasedVectorTileDataProvider
Mapbox Service provides vector tilesets. The Map Control receives tiles as PBF files.
Important
Before you use the Mapbox Service, read the Invoices and billing and Terms of service pages.
Follow the steps below to connect to the Mapbox Tile Service and load the Mapbox Streets tileset (mapbox.mapbox-streets-v8):
private void Form1_Load(object sender, EventArgs e) {
ImageLayer layer = new ImageLayer();
MapboxDataProvider dataProvider = new MapboxDataProvider();
dataProvider.AccessToken = "Your_access_token_here.";
layer.DataProvider = dataProvider;
mapControl1.Layers.Add(layer);
}
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim layer As ImageLayer = New ImageLayer()
Dim dataProvider As MapboxDataProvider = New MapboxDataProvider()
dataProvider.AccessToken = "Your_access_token_here."
layer.DataProvider = dataProvider
mapControl1.Layers.Add(layer)
End Sub
You can use the MapboxDataProvider.Tileset property to select a tileset:
dataProvider.Tileset = MapboxTileset.Terrain;
dataProvider.Tileset = MapboxTileset.Terrain
If a default vector tile style does not meet your requirements, you can apply a custom style. Use the VectorTileDataProviderBase.StyleFileUri property to define a path to a style file. The MapControl uses System.Text.Json library to parse style files. Install the System.Text.Json package if your .NET Framework application does not reference this library. .NET projects do not require manual installation of the System.Text.Json package, as it is already included in the .NET environment. Set the DevExpress.Map.Native.VectorTileStyleParser.ProcessingLibrary property to NewtonsoftJson to use the Newtonsoft.Json library instead. See Vector Tile Providers: Vector Tile Styles for more information about styles.
The following code loads a style file from the project’s Data directory:
dataProvider.StyleFileUri = new Uri(GetRelativePath("style.json"), UriKind.Absolute);
public static string GetRelativePath(string name) {
name = "Data\\" + name;
DirectoryInfo dir = new DirectoryInfo(Application.StartupPath);
while (dir != null) {
string filePath = Path.Combine(dir.FullName, name);
if (File.Exists(filePath))
return filePath;
dir = Directory.GetParent(dir.FullName);
}
return string.Empty;
}
dataProvider.StyleFileUri = New Uri(GetRelativePath("style.json"), UriKind.Absolute)
Public Shared Function GetRelativePath(ByVal name As String) As String
name = "Data\" & name
Dim dir As DirectoryInfo = New DirectoryInfo(Application.StartupPath)
While dir IsNot Nothing
Dim filePath = Path.Combine(dir.FullName, name)
If File.Exists(filePath) Then Return filePath
dir = Directory.GetParent(dir.FullName)
End While
Return String.Empty
End Function
Object MapDisposableObject MapImageDataProviderBase MapTileDataProviderBase ImageTileDataProvider VectorTileDataProviderBase UriBasedVectorTileDataProvider MapboxDataProvider
See Also