2016-08-11 30 views
1

我試圖使用Sitecore 8.1的地理位置服務來檢測客戶的位置並提供正確的網站上下文。以編程方式訪問地理位置服務

是否有從他們,我可以使用編程方式的API?任何示例代碼?

+0

你看着'Sitecore.Analytics.Tracker.Current.Interaction.GeoData':

這在記錄?在那裏,Sitecore追蹤一些地區的地理數據,這對你來說可能就足夠了。 –

+0

我試圖避免xDB/DMS許可證。我是否需要啓用它才能查詢? – xoail

+0

是的,您確實需要xDB許可證。 –

回答

2

你真的不應該。該服務並不意味着在您的頁面請求中同步調用 - 保留網站頁面傳遞,直到您有答案。它根本不會表現得很好。

Sitecore Marketplace提供了GeoLite Resolver(Github鏈接:https://github.com/adoprog/Sitecore-Geo-Lite-Resolver),雖然這已相當老,但它仍然可以包含並編譯到Sitecore 8項目中。

它基本上使用MaxMind數據庫的脫機光照副本 - 足以解決國家決議(但不是城市) - 並且可以非常快地響應(< 10毫秒)查找。

1

您將需要Sitecore.Analytics.Lookups命名空間。 Sitecore.Analytics.Lookups.GeoIpManager.GetGeoIpData應該讓你開始。

請記住,基於GeoIP數據的框中已經有一些規則和條件可用。這是一個選擇(重新)使用這些。

0

以上是正確的,你應該避免調用的GeoManager,這是作爲一個例子在許多地方,但與分析混亂。你應該調用LookupManager.GetInformationByIP(ip);,它解析IP並使用GeoIP緩存。

當我們嘗試利用Sitecore管道中的Geo IP數據時,我們遇到了同樣的問題,因爲GeoData在默認情況下尚不可用。 http://edgebytes.com/2016/09/08/calling-sitecore-geo-ip-location-service/