2017-02-25 59 views
2

我在我的android應用程序中添加了標記,但我需要製作一個功能,如果我在街道上添加標記,我需要在最近的已知街道上添加標記。就像在這個例子中:Add marker to nearest known street,但我需要使用android。Android:從標記點得到最近的街道

,這是我的標記座標:

MarkerOptions marker = new MarkerOptions().position(
         markerLatLng = new LatLng(point.latitude, point.longitude)).title("my marker"); 

現在我需要執行異步任務發送座標,谷歌和檢索最近的路coordinates.What網址我應該使用嗎?

然後我打算座標添加到ArrayList中:

locationArray.add(new LatLng(point.latitude, point.longitude)); 

,並顯示標記在我的地圖:

mGoogleMap.addMarker(marker); 

我在API管理器中開啓:Google Maps Directions APIGoogle Maps Roads API

問題是什麼URL在我的AsynTask應該用來獲得最近的街道座標?

也許我需要使用這個:https://maps.googleapis.com/maps/api/directions/output?parameters並將我的標記座標添加到參數?

回答

2

你知道如何使用JSON我提出以下建議:

https://maps.googleapis.com/maps/api/geocode/json?latlng=yourLat,yourLng 

在響應中,你將有關於經緯度,最近街道和號碼,城市,州,國家,還有更多的所有信息。

+0

所以,要找到最近的街道,我應該使用'DirectionsAPI'還是'GeocodeAPI'? – Darius92

+0

地理編碼,如果在方向api中嘗試此操作,您將獲得「無效請求」。 –

0

如果您的目的是將座標調整到最近的道路,您應該考慮具有最近道路功能的道路API。

看一看文檔

https://developers.google.com/maps/documentation/roads/nearest

這樣就可以在異步任務中使用的URL是一樣的東西https://roads.googleapis.com/v1/nearestRoads?parameters&key=YOUR_API_KEY

如果你的目的是要找到最近的街道地址的正如Henrique所建議的,反向地理編碼對此很有幫助。

+0

使用nearestRoads時,位置不是很準確,有時候標記會錯過道路。要獲得更多認證,請使用:https://roads.googleapis.com/v1/snapToRoads?path = 54.473155,-6.342999&interpolate = true&key = API_KEY – Lunatikul