Я пытаюсь получить адрес из координат (обратное местоположение карты геокодирования) с помощью JavaScript. У меня правильно настроены app_id и app_code, и я получаю следующую ошибку:
<ns2:Error xmlns:ns2="http://www.navteq.com/lbsp/Errors/1" type="PermissionError" subtype="InvalidCredentials">
<Details>invalid credentials for f9t3XXXXXXXXXXXXXX</Details>
</ns2:Error>
Моя учетная запись - Freemium XYZ, и я полагаю, что могу использовать эту услугу.
Это код, который я установил в моем приложении Symfony (все работает отлично, кроме обратного геокодирования):
var platform = new H.service.Platform({
'app_id':'my_app_id',
'app_code':'my_app_code',
useHTTPS: true
});
var pixelRatio = window.devicePixelRatio || 1;
var defaultLayers = platform.createDefaultLayers();
// Instantiate (and display) a map object:
var map = new H.Map(document.getElementById('mapContainer'),
defaultLayers.normal.map,
{
/*pixelRatio: pixelRatio*/
center: pos,
zoom: 5
}
);
// Create the default UI components
var ui = H.ui.UI.createDefault(map, defaultLayers);
ui.getControl('mapsettings').setDisabled(true).setVisibility(false);
ui.getControl('zoom').setDisabled(true).setVisibility(false);
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
map.setCenter(pos);
map.setZoom(14);
var marker = new H.map.Marker(pos);
map.addObject(marker);
// Create the parameters for the reverse geocoding request:
var reverseGeocodingParameters = {
prox: position.coords.latitude + ',' + position.coords.longitude + ',' + position.coords.accuracy,
mode: 'retrieveAddresses',
maxresults: 1
};
// Define a callback function to process the response:
function onSuccess(result) {
var location = result.Response.View[0].Result[0];
// Create an InfoBubble at the returned location with
// the address as its contents:
ui.addBubble(new H.ui.InfoBubble({
lat: location.Location.DisplayPosition.Latitude,
lng: location.Location.DisplayPosition.Longitude
}, { content: location.Location.Address.Label }));
};
// Get an instance of the geocoding service:
var geocoder = platform.getGeocodingService();
// Call the geocode method with the geocoding parameters,
// the callback and an error callback function (called if a
// communication error occurs):
geocoder.reverseGeocode(
reverseGeocodingParameters,
onSuccess,
function(e) { console.log(e); });
}, function () {
var bubble = new H.ui.InfoBubble(pos, { content: "{{ 'geolocation.should.be.enabled'|trans|raw }}" });
// show info bubble
ui.addBubble(bubble);
});
} else {
var bubble = new H.ui.InfoBubble(pos, { content: "{{ 'browser.does.not.support.geolocation'|trans|raw }}" });
// show info bubble
ui.addBubble(bubble);
}