在Gmap中,我們可以通過傳遞自定義的經度和緯度來標記所需的位置。 有什麼方法可以添加標記來映射用戶的當前位置。 有沒有辦法獲得用戶的經緯度? 以前有人做過嗎? 請分享你的想法?如何在Primefaces Gmap上標記用戶的當前位置?
回答
您需要確定用戶的IP地址,然後將其提供給某個IP地理位置工具/ API以獲取緯度/經度的地理位置。最後將這些信息用於您的Google地圖。
所有JSF可以爲你做的是給你的用戶的IP地址如下:
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
String ip = request.getRemoteAddr();
// ...
如果你想採取代理考慮爲好,然後檢查X-Forwarded-For
頭:
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
String ip = request.getRemoteAddr();
String forwardedFor = request.getHeader("X-Forwarded-For");
if (forwardedFor != null) {
ip = forwardedFor.split("\\s*,\\s*", 2)[0];
}
// ...
您需要使用哪個IP地理位置工具/ API是您必須回答自己的問題。只需將關鍵字「ip geo location」提供給Google即可開始使用。
除了BalusC的回答從Google Maps API documentation報價(Primefaces使用此API引擎蓋下):
新版瀏覽器都開始支持W3C Geolocation standard。 這個標準是HTML5的一部分,很可能會成爲事實上的 標準。所有希望執行 地理定位的應用程序均應支持此標準。
某些瀏覽器使用IP地址來檢測用戶的位置;但是,由於用戶的IP地址只能提供用戶位置的粗略估計,因此我們不建議將此方法用於地理定位。 W3C方法是最容易和最全面支持的,所以它應該優先於其他方法的 。
下面是從給定鏈路短的例子:
var initialLocation;
var browserSupportFlag = new Boolean();
// Try W3C Geolocation (Preferred)
if(navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
map.setCenter(initialLocation);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
}
通常情況下,用戶將被提示,並要求允許當網站嘗試訪問位置信息。
你可以先試試這個,如果失敗繼續Balusc的答案。
我知道這種方法。如果用戶拒絕提供他的位置信息會怎麼樣?我的意思是某些用戶只會取消提示而不去查看它,並想到它的某些更新信息或其他內容。 – 2013-03-20 12:31:42
完整的來源顯示在給定的鏈接中。他們首先嚐試獲取位置,如果失敗,他們將採取「西伯利亞」;-)。然後您應該嘗試使用BalusC提出的IP地址查找位置。 – 2013-03-20 12:38:06
- 1. Primefaces GMAP標記與標籤
- 2. 如何使用新標記更新gmap後在primefaces p:gmap中刷新gmap標記
- 3. 中心到Primefaces gmap中的當前位置
- 4. Primefaces Gmap標記問題
- 5. Primefaces gmap獲取位置
- 6. 定期更新PrimeFaces中標記的位置gmap
- 7. Swift - 如何更改當前用戶位置標記的描述?
- 8. 使用Google Maps API在用戶當前位置設置標記?
- 9. 將用戶位置標記添加到現有的gmap中
- 10. 如何在Google地圖上添加當前位置標記
- 11. 如何使用OSM將標記放置在當前位置?
- 12. 在GMap上放置位置
- 13. 動畫標記當前位置上的位置改變
- 14. 如何突出gmap標記懸停在primefaces
- 15. 在當前位置獲取標記
- 16. 在當前位置添加標記
- 17. Primefaces中的標籤GMAP
- 18. 如何在MKMapView上的用戶當前位置添加UIImageView
- 19. 如何確定用戶在GPS路徑上的當前位置?
- 20. 如何獲取用戶在android上的當前位置?
- 21. 兩個標記 - MapBox上的當前位置和目標Android
- 22. 當前位置拖動的標記
- 23. 如何放大用戶當前位置?
- 24. 如何獲取用戶當前位置
- 25. 如何找到用戶當前位置?
- 26. Android當前位置標記ID(姓名)
- 27. 當用戶當前位置發生變化時,如何更新谷歌地圖中的標記位置?
- 28. 顯示當前位置標記出庫
- 29. 如何在Sencha-Touch2.0的地圖上獲取當前位置的標記
- 30. 適用於JQuery的GMAP 3插件。更改標記位置?
非常感謝BalusC,你能不能建議任何穩定的IP GEO LOCATION,因爲有很多的地方,我有點難以確定哪一個可以使用。請提供任何建議。 – 2013-03-20 12:34:51