SDKs overview
HERE Technologies provides a suite of Software Development Kits (SDKs) and Application Programming Interfaces (APIs) designed to facilitate the integration of location-based services into various applications. These tools enable developers to incorporate mapping, routing, geocoding, and spatial analysis functionalities across different platforms. The official SDKs primarily target mobile application development for Android and iOS, as well as web-based applications through a dedicated JavaScript API. Each SDK is engineered to provide direct access to HERE Location Services, supporting use cases ranging from automotive navigation to logistics and fleet management.
The SDKs abstract the complexities of direct API interaction, offering higher-level components and utilities. This approach can reduce development time and effort by providing pre-built map views, routing engines, and search interfaces. For example, the Android SDK integrates directly with the Android Studio development environment, allowing developers to leverage existing Java or Kotlin skills to build location-aware applications. Similarly, the iOS SDK integrates with Xcode, supporting Swift or Objective-C development.
Beyond the core SDKs, HERE Technologies maintains comprehensive API references for direct integration, allowing developers to choose the level of abstraction that best suits their project requirements. The developer portal offers detailed documentation, tutorials, and code examples for each SDK, aiding in the development and deployment of location-enabled applications. Further details on the core products and APIs can be found in the HERE Technologies documentation.
Official SDKs by language
HERE Technologies offers official SDKs tailored for specific programming languages and platforms, ensuring native performance and developer experience. These SDKs are maintained directly by HERE Technologies and provide access to the full range of location services.
| Language/Platform | SDK Name | Package/Module | Typical Installation Method | Maturity |
|---|---|---|---|---|
| Android (Java/Kotlin) | HERE SDK for Android | com.here.sdk.consent (example module) |
Gradle dependency via Maven repository | Stable |
| iOS (Swift/Objective-C) | HERE SDK for iOS | HERE_SDK_Lite (example framework) |
CocoaPods or manual framework integration | Stable |
| JavaScript (Web) | HERE Maps API for JavaScript | H (global object) |
CDN script tag or npm package (@here/maps-api-for-javascript) |
Stable |
Each SDK is designed to provide specific functionalities:
- HERE SDK for Android: Provides map rendering, routing, search, and positioning capabilities for Android applications. It supports both Java and Kotlin development and integrates with Android Studio. Developers can find Android SDK development guides on the HERE developer portal.
- HERE SDK for iOS: Offers similar functionalities for iOS applications, including interactive maps, navigation, and location search. It is compatible with Swift and Objective-C projects and integrates with Xcode. The iOS SDK developer guide provides detailed implementation steps.
- HERE Maps API for JavaScript: Designed for web applications, this API enables developers to embed interactive maps, display location data, calculate routes, and perform geocoding directly within a browser environment. It supports various modern web frameworks. Detailed information on the JavaScript API development guide is available.
Installation
Installation methods vary by platform and SDK. The following sections outline typical installation procedures for the official HERE Technologies SDKs.
Android SDK
To integrate the HERE SDK into an Android project, developers typically add dependencies to their build.gradle file. First, ensure the Maven repository is configured:
allprojects {
repositories {
google()
mavenCentral()
maven { url "https://repo.here.com/maven/release/com/here/sdk" }
}
}
Then, add the desired HERE SDK modules as dependencies in the app's build.gradle file:
dependencies {
implementation "com.here.sdk:consent:4.17.4.0"
implementation "com.here.sdk:mapview:4.17.4.0"
// Add other modules as needed, e.g., search, routing
}
Refer to the HERE SDK for Android getting started guide for the latest version and full setup instructions.
iOS SDK
For iOS projects, CocoaPods is the recommended package manager. Add the HERE SDK pod to your Podfile:
target 'YourAppName' do
use_frameworks!
pod 'HERE_SDK_Lite', '~> 4.17.4'
# Or 'HERE_SDK_Premium', 'HERE_SDK_Navigate' for other editions
end
Then, run pod install in your project directory. Manual integration by dragging frameworks into the Xcode project is also an option. The HERE SDK for iOS getting started guide provides specific details for each installation method.
JavaScript API
The HERE Maps API for JavaScript can be integrated via a Content Delivery Network (CDN) script tag in the HTML:
<script src="https://js.api.here.com/v3/3.1/mapsjs.core.js" type="text/javascript" charset="utf-8"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs.service.js" type="text/javascript" charset="utf-8"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs.ui.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.1/mapsjs-ui.css" />
Alternatively, for module bundlers like Webpack or Rollup, the API can be installed via npm:
npm install @here/maps-api-for-javascript
And then imported into your JavaScript files:
import H from '@here/maps-api-for-javascript';
Further details are available in the HERE Maps API for JavaScript getting started guide.
Quickstart example
This example demonstrates how to initialize a basic map using the HERE Maps API for JavaScript. This snippet creates a map centered on a specific geographic location with a default zoom level.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HERE Map Quickstart</title>
<!-- HERE Maps API for JavaScript -->
<script src="https://js.api.here.com/v3/3.1/mapsjs.core.js" type="text/javascript" charset="utf-8"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs.service.js" type="text/javascript" charset="utf-8"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs.ui.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.1/mapsjs-ui.css" />
<style>
body { margin: 0; padding: 0; }
#mapContainer { width: 100vw; height: 100vh; background: #ccc; }
</style>
</head>
<body>
<div id="mapContainer"></div>
<script>
// Initialize the platform object:
var platform = new H.service.Platform({
'apikey': 'YOUR_HERE_API_KEY' // Replace with your actual API key
});
// Obtain the default map types from the platform object:
var defaultLayers = platform.createDefaultLayers();
// Instantiate (and display) a map object:
var map = new H.Map(
document.getElementById('mapContainer'),
defaultLayers.vector.normal.map,
{
zoom: 10,
center: { lat: 52.5200, lng: 13.4050 } // Berlin coordinates
}
);
// Add behavior for panning and zooming
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
// Create the default UI:
var ui = H.ui.UI.createDefault(map, defaultLayers);
// Add a marker to the map
var marker = new H.map.Marker({ lat: 52.5200, lng: 13.4050 });
map.addObject(marker);
</script>
</body>
</html>
Before running this code, replace 'YOUR_HERE_API_KEY' with an actual API key obtained from the HERE Technologies developer dashboard. This example provides a basic functional map, which can be expanded with additional features like routing, search, and custom data overlays using the full capabilities of the HERE Maps API for JavaScript.
Community libraries
While HERE Technologies maintains official SDKs and APIs, the developer community also contributes libraries and wrappers that extend functionality or provide integrations with other frameworks. These community-driven projects can offer alternative approaches or specialized tools not covered by the official offerings.
One notable example in the broader geospatial landscape is the development of tools that integrate with popular mapping libraries. For instance, developers often adapt general-purpose JavaScript mapping libraries like Google Maps Platform's JavaScript API or Mapbox GL JS to work with various data sources, including those potentially provided by HERE APIs. While not direct HERE community libraries, these illustrate the broader ecosystem of geospatial development where developers might build custom connectors or utilities.
For Python developers, libraries such as Geopandas or Shapely are widely used for spatial data manipulation and analysis. While these are not specific to HERE Technologies, they can be utilized to preprocess or analyze geospatial data before or after interaction with HERE APIs, allowing for complex spatial operations that complement the core HERE services. For example, a developer might use Geopandas to filter a large dataset of points before sending relevant sections to the HERE Routing API for optimization.
Developers seeking community contributions specific to HERE Technologies are advised to consult public code repositories on platforms like GitHub, which may host projects that extend or simplify the use of HERE APIs in various programming environments. These projects vary in maturity and support, and their use typically requires independent vetting by the developer.