2014-03-27 43 views
0

早上好一切,使用企業版在此地圖從內部Salesforce的

我是丹尼,我就是一個Salesforce的系統管理員和(很)初級開發人員目前正試圖諾基亞HERE地圖集成到我們的系統,因爲它是公共交通選擇遠遠優於谷歌。這是使用Visualforce在Salesforce中完成的。我已成功使用我們的企業ID和密鑰在動態地圖上調用並顯示路線,但在地理編碼方面遇到了一些麻煩。我有一些問題,下面的元素:

<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> 

我從一個崗位在這個網站上的企業版對待nokia.places.search等作爲一個實例,而不是一個函數被調用閱讀。這很有意義,因爲將URL更改爲SE而不是EE似乎會使地理編碼請求正常運行,但是我們的內部系統拒絕響應,因爲它不在HTTPS中(可以使用Enterprise強制啓用)。
我遇到的問題是我對Java不夠熟悉,無法真正瞭解它們之間的區別,或者更確切地說,我不知道如何調用實例。目前,Chrome中的java控制檯告訴我,搜索是一個未定義類型的錯誤,這是沒有用的,我無法在任何搜索的地方找到任何進一步的指導!任何人都可以幫助我區分企業/標準指南嗎?

謝謝!

回答

0

的這裏的問題是,有的JavaScript API可用,並且在你的情況,你需要使用企業地圖JS API沒有公共地圖JS API是。企業地圖JS API中的地理編碼(nokia.search.Manager)與公開發行不同,且更靈活。公共地圖JS API(nokia.places.search.manager)中的地理編碼簽名是提供地點的一部分,受到更多限制。

  • 作爲一個企業客戶,你需要的是(原諒雙關語)HERE
  • 的實例關聯的設置可以在enterprise explorer
  • 發現使用企業地圖JS地理編碼例如唯一文檔API可以找到HERE,查看代碼並注意它使用nokia.search.Manager()
  • 當前卡車路線僅適用於6.2 enterprise routing API,而公共運輸路線僅適用於7.2 routing API。這意味着,爲了將公共交通工具與Enterprise Maps JS API一起使用,您需要使用nokia.maps.advrouting.Manager並聯系底層的休息服務。這方面的一個例子可以在Community Examples
+0

非常感謝傑森! –