Всем доброе утро,
Меня зовут Дэнни, я системный администратор Salesforce и (очень) младший разработчик, который в настоящее время пытается интегрировать карты HERE от Nokia в нашу систему, поскольку их варианты общественного транспорта значительно превосходят карты Google. Это делается в Salesforce с помощью Visualforce. Мне удалось использовать наш идентификатор предприятия и ключ для вызова и отображения маршрута на динамической карте, но у меня возникли проблемы с геокодированием. У меня возникли проблемы с элементом ниже:
<head>
<script type="text/javascript" charset="UTF-8" src="https://js.cit.api.here.com/ee/2.5.3/jsl.js?with=maps,positioning,places,directions"></script>
<style type="text/css">
html {
overflow:hidden;
}
body {
margin: 0;
padding: 0;
position: absolute;
overflow:hidden;
width: 100%;
height: 100%;
}
#mapContainer {
width: 60%;
height: 95%;
left: 0;
top: 10px;
position: absolute;
}
</style>
</head>
<body>
<div id="mapContainer"></div>
<script type="text/javascript" charset="UTF-8" src="https://js.cit.api.here.com/ee/2.5.3/jsl.js?with=maps,positioning,places,directions"></script>
<script type="text/javascript">
nokia.Settings.set("app_id", "V6tmpXy6GHXqJWlaPVmh");
nokia.Settings.set("app_code", "XS4Tjj82QznkWAJJu0L3-g");
nokia.Settings.set("serviceMode", "cit");
(document.location.protocol == "https:") && nokia.Settings.set("secureConnection", "force");
var map = new nokia.maps.map.Display(
document.getElementById("mapContainer"), {
components: [
new nokia.maps.map.component.ZoomBar(),
new nokia.maps.map.component.Behavior(),
new nokia.maps.map.component.TypeSelector(),
new nokia.maps.map.component.ScaleBar(),
new nokia.maps.map.component.ContextMenu(),
],
});
var modes = [{
type: "fastest",
transportModes: ["car"],
trafficMode: "disabled"
}];
// GeoCode
nokia.places.search.manager.geoCode({
searchTerm : "{!Transport_order__c.From_Address__c}",
onComplete: onGeocodeComplete
});
// Post GeoCode
function onGeocodeComplete(data, requestStatus) {
var marker;
if (requestStatus === 'OK') {
alert('GEOCODE ENDED SUCCESSFULLY');
marker = new nokia.maps.map.StandardMarker(data.location.position);
map.objects.add(marker);
map.zoomTo(marker.getBoundingBox(), false);
if (map.get('zoomLevel') > 15) {
map.setZoomLevel(15);
}
} else if (requestStatus === 'ERROR') {
alert('GEOCODE FAILED.');
}
}
</script>
</body>
Я прочитал из сообщения на этом сайте, что версия Enterprise рассматривает nokia.places.search и т. Д. Как экземпляр, а не функцию, которую нужно вызвать. Это имеет смысл, поскольку изменение URL-адреса на SE, а не на EE, похоже, заставляет запрос геокодирования работать нормально, однако наша внутренняя система отклоняет ответ, поскольку он не в HTTPS (который может быть принудительно включен с помощью Enterprise).
Проблема, с которой я столкнулся, заключается в том, что я недостаточно знаком с Java, чтобы по-настоящему понять, в чем разница, или, скорее, я не знаю, что делать с вызовом экземпляра. В настоящее время консоль java в Chrome сообщает мне, что поиск - это ошибка неопределенного типа, что бесполезно, и я не могу найти никаких дополнительных указаний в любом месте, где ищу! Может ли кто-нибудь помочь мне разграничить руководство по этому вопросу между корпоративным и стандартным?
Спасибо!