# Package com.codename1.maps.spi

package com.codename1.maps.spi

The maps service-provider interface (SPI).

This package defines the contract that native map providers (Apple MapKit, Google Maps, Bing, Huawei, ...) implement so that `NativeMap` can drive a native map peer without the core framework depending on any provider SDK. Provider implementations are not part of the core: they are injected into the app's `com.codename1.maps` package by the build tooling when a `maps.provider` build hint selects one, and they register themselves with `MapProviderRegistry`. When no provider is present `NativeMap` falls back to the pure-vector `MapView`.

- Related Packages
  Package
  Description
  com.codename1.maps
  The mapping API allows developers to use maps in their applications, add layers on top of the map and to enhance the API with additional Layers, Providers and functionality.
  com.codename1.maps.layers
  The Layers are elements that are displayed on the map.
  com.codename1.maps.providers
  These are the map providers, currently http://www.openstreetmap.org/ is supported.
  com.codename1.maps.routing
  Road-following routes for the modern maps API.
  com.codename1.maps.vector
  The pure-vector map rendering engine that backs `MapView`.
- Class
  Description
  MapProvider
  The service-provider interface a native map backend implements so the core `NativeMap` component can drive it without knowing which provider (Apple MapKit, Google Maps, Bing, Huawei, ...) is in use.
  MapProviderRegistry
  The registry through which build-injected `MapProvider` implementations advertise themselves to the core `NativeMap` component.