所有关于计算距离的解都在两点之间。
我的问题是:
有没有办法计算到某条街的距离?
假设我想计算一个距离,从我的位置到一个特定的地区或大道,有许多街道可以到达那里,在这种情况下,如何知道最近的街道到我那里?
这里我只有一个点(我的位置),而目的地是不同的,取决于我的当前位置。我所知道的目的地是在某一条街或某一地区,那么如何计算呢?
这个问题的另一个例子是,假设我离一条1公里长的街道10米远。
我应该能够计算出我的距离是从那条街的起点开始的10米,在这段距离之后,当我进入这条街,每一米我醒来1公里,它应该是从我的位置到这条街的0米距离,当我从另一边离开它时,距离应该是从那条街的终点重新计算,而不是从起点,所以当我离开它大约5米时,它应该计算为5米而不是1005米。
以下是谷歌地图上的示例要求:
首先让我们看看地图上的Wall Street in NY city。
所以目标是华尔街。
如果你现在的位置是约翰街和水街的交叉口,我的任务是带你到华尔街最近的一个点,路径将是this one(步行模式)。
但是,如果您在Broad Street和Beaver Street的交叉路口,则到达华尔街最近点的目的地将是like this one(步行模式):
这是我的问题
有可能吗?新的api是否为此提供了解决方案?
有什么解决办法或想法吗?
最佳答案
嘿,是的,你可以在这里得到被搜索位置的经纬度,我将举例说明你如何得到。
你可以使用google autocomplete搜索任何地方。然后从autocomplete api中获取placeid,然后将其传递给detailsapi。
https://maps.googleapis.com/maps/api/place/autocomplete/json
https://maps.googleapis.com/maps/api/place/details/json
请参见传递参数
//Google Autocomplete
@GET(ApiConstants.GET_AUTOCOMPLETE)
Observable<GoogleAutocompleteSearchResponse> getAutoCompleteSearch(@Query("input") String input, @Query("key") String key, @Query("components") String components);
// Google Autocomplete places
@GET(ApiConstants.GET_AUTOCOMPLETE_PLACE)
Observable<GoogleAutoCompletePlacesResponse> getAutoCompletePlaces(@Query("placeid") String input, @Query("key") String key);
你可以在第二个API中得到经纬度。
希望这对你有帮助。