SDKs overview
HERE Technologies provides a range of Software Development Kits (SDKs) designed to facilitate the integration of its location-based services into various application environments. These SDKs encapsulate the complexities of HERE's extensive API portfolio, offering developers abstracted interfaces for tasks such as map rendering, routing, geocoding, and spatial analysis. The available SDKs support native mobile development, cross-platform frameworks, and web-based applications, enabling developers to build location-aware experiences across diverse platforms. The SDKs are regularly updated to ensure compatibility with the latest operating system versions and to introduce new features reflecting advancements in geospatial technology and HERE's service offerings, as detailed in the HERE developer documentation.
Each SDK is tailored to the specific platform's conventions and programming paradigms, providing a more natural development experience than direct API calls. For instance, the mobile SDKs often include pre-built UI components for maps, enabling quick integration of interactive mapping functionalities. Similarly, the JavaScript SDK is optimized for web browsers, offering tools for dynamic map rendering and interaction within web applications. The design of these SDKs is intended to reduce development time and effort by providing robust, tested components that adhere to best practices for their respective platforms.
Official SDKs by language
HERE Technologies offers official SDKs for major development platforms and languages, ensuring comprehensive coverage for most application types. These SDKs are maintained directly by HERE and are the recommended path for integrating HERE services. The table below outlines the primary official SDKs, their associated languages, typical package names, installation commands, and their general maturity status.
| SDK Name | Language(s) | Package/Module | Installation Command (Example) | Maturity |
|---|---|---|---|---|
| Android SDK | Java, Kotlin | com.here.sdk.consent (example module) |
Add to build.gradle: implementation 'com.here.sdk.consent:consent:4.14.8.0' |
Stable, Production Ready |
| iOS SDK | Swift, Objective-C | HERE SDK (Swift Package) |
Add Swift Package in Xcode or use CocoaPods: pod 'heresdk' |
Stable, Production Ready |
| JavaScript SDK | JavaScript | @here/maps-api-for-javascript |
npm install @here/maps-api-for-javascript |
Stable, Production Ready |
| Flutter SDK | Dart | here_sdk |
flutter pub add here_sdk |
Stable, Production Ready |
| React Native SDK | JavaScript, TypeScript | @here/react-native-here-maps |
npm install @here/react-native-here-maps |
Stable, Production Ready |
For detailed versioning and specific module names, developers should consult the official SDKs and Libraries documentation.
Installation
The installation process varies slightly depending on the targeted platform and SDK. Below are general installation guidelines for HERE Technologies SDKs.
Android SDK (Java/Kotlin)
To integrate the HERE Android SDK, add the necessary dependencies to your project's build.gradle file. Ensure you have the HERE Maven repository configured.
// Project-level build.gradle
allprojects {
repositories {
google()
mavenCentral()
maven { url "https://repo.platform.here.com/artifactory/here-sdk/" }
}
}
// App-level build.gradle
dependencies {
implementation 'com.here.sdk.consent:consent:4.14.8.0'
implementation 'com.here.sdk.maps:maps:4.14.8.0'
implementation 'com.here.sdk.routing:routing:4.14.8.0'
// ... other HERE SDK modules as needed
}
iOS SDK (Swift/Objective-C)
For iOS projects, the HERE SDK can be integrated using Swift Package Manager or CocoaPods. Swift Package Manager is generally preferred for modern iOS development.
Swift Package Manager
In Xcode, navigate to File > Add Packages... and enter the HERE SDK repository URL (consult the HERE iOS SDK installation guide for the exact URL).
CocoaPods
Add the following to your Podfile and run pod install:
target 'YourAppTarget' do
use_frameworks!
pod 'heresdk', '~> 4.14'
# ... other HERE SDK pods as needed
end
JavaScript SDK
The HERE Maps API for JavaScript can be installed via npm or included directly via a CDN link in your HTML.
npm
npm install @here/maps-api-for-javascript
Then import modules into your JavaScript file:
import H from '@here/maps-api-for-javascript';
CDN (Direct HTML inclusion)
<script src="https://js.api.here.com/v3/3.1/mapsjs.bundle.js"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs.ui.js"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs.mapevents.js"></script>
Flutter SDK (Dart)
Add the here_sdk dependency to your pubspec.yaml file:
dependencies:
flutter:
sdk: flutter
here_sdk: ^4.14.800
Then run flutter pub get to fetch the package.
React Native SDK (JavaScript/TypeScript)
Install the React Native HERE Maps package using npm or yarn:
npm install @here/react-native-here-maps
# or
yarn add @here/react-native-here-maps
After installation, link native modules if necessary (though often handled automatically by auto-linking).
Quickstart example
This example demonstrates initializing a map with the HERE Maps API for JavaScript, displaying a basic map centered on a specific location. You will need a HERE API key to run this example, which can be obtained from the HERE developer portal.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HERE JavaScript SDK Quickstart</title>
<link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.1/mapsjs-ui.css" />
<script type="text/javascript" charset="utf-8" src="https://js.api.here.com/v3/3.1/mapsjs.bundle.js"></script>
<script type="text/javascript" charset="utf-8" src="https://js.api.here.com/v3/3.1/mapsjs-ui.js"></script>
<script type="text/javascript" charset="utf-8" src="https://js.api.here.com/v3/3.1/mapsjs.mapevents.js"></script>
<style>
body { margin: 0; padding: 0; }
#mapContainer { width: 100vw; height: 100vh; background: grey; }
</style>
</head>
<body>
<div id="mapContainer"></div>
<script>
function initMap() {
const platform = new H.service.Platform({
apikey: "YOUR_HERE_API_KEY"
});
const defaultLayers = platform.createDefaultLayers();
const map = new H.Map(
document.getElementById('mapContainer'),
defaultLayers.vector.normal.map,
{
zoom: 10,
center: { lat: 52.5, lng: 13.4 }
}
);
const behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
const ui = H.ui.UI.createDefault(map, defaultLayers);
}
initMap();
</script>
</body>
</html>
Replace "YOUR_HERE_API_KEY" with your actual API key. This example initializes the map, sets a default zoom level and center coordinates (Berlin, Germany), and adds basic map interaction (panning, zooming) and UI controls. For more detailed JavaScript SDK usage, refer to the HERE Maps API for JavaScript Developer's Guide.
Community libraries
While HERE Technologies provides a robust suite of official SDKs, the developer community also contributes libraries and wrappers that extend or facilitate the use of HERE APIs. These community-driven projects can offer specialized functionalities, integrations with lesser-supported platforms, or alternative approaches to common tasks. It is important to note that community libraries are not officially supported by HERE Technologies and their maintenance and compatibility may vary.
- Python Wrappers: Developers often create Python libraries to interact with HERE's REST APIs, especially for data processing, geocoding, and routing tasks in backend or data science workflows. These typically use HTTP request libraries to consume the HERE REST APIs directly.
- GIS Integrations: Some community projects focus on integrating HERE data and services with popular Geographic Information Systems (GIS) software or libraries, such as ArcGIS API for Python, enabling advanced spatial analysis capabilities.
- Framework-Specific Components: Beyond the official Flutter and React Native SDKs, developers might create components or hooks for other JavaScript frameworks (e.g., Vue.js, Angular) to streamline map integration.
When considering a community library, developers should evaluate its active maintenance, documentation, and community support. Checking the project's repository (e.g., GitHub) for recent commits, open issues, and pull requests can provide insight into its health and reliability. For production environments, official SDKs are generally recommended due to their direct support from HERE Technologies and guaranteed compatibility with the latest API versions.