gpt4 book ai didi

android - 如何在静态位置而不是当前位置列出附近地点?

转载 作者:行者123 更新时间:2023-11-30 05:11:55 25 4
gpt4 key购买 nike

我不确定这个问题是否得到了回答。这感觉像是一个基本问题,但我一直在寻找一种方法来做到这一点,我遇到的所有示例都显示了设备附近的位置列表。我想要做的是通过点击按钮指定一个位置,然后显示它附近的地方。

具体来说,如果用户点击按钮 1,这意味着用户想要查看火车站 A 附近的地点,可能是在另一个带有 RecyclerView 的 Activity 中。

我正在使用 http://www.zoftino.com/current-location-and-nearby-places-android-example以供引用。我一直按照它在 list 文件中添加 API key ,但我在尝试分析我应该如何定义特定位置而不是获取设备位置时遇到了困难。

我不确定我是否正确地处理了这个问题,但到目前为止,我已经制作了一个 Java bean,它可以获取选择了哪个站......

public class Station {
String station;

public Station (String station) {
this.station = station;
}
public Station () {

}

public String getStation() {
return station;
}

public void setStation(String station) {
this.station = station;
}

我还有一个带有 onClick 方法的 Activity 来检查单击了哪个按钮...

public void onClick (View v) {
switch (v.getId()) {
case R.id.img1: station = getString(R.string.StationName1);
Log.d("project", "selected station is " + station);
break;
//other cases deleted to make this more concise
}
Station selected = new Station (station);
Log.d("project", "content of station bean is " + selected.getStation());
}

我正在使用运行 Android 7.1.1 的手机对此进行测试。从 logcat 中,我知道 Station bean 能够正确获取选定的站。老实说,我不知道为什么我决定使用 getString(R.string.StationName1) 但考虑到我正在为 4 条火车线路做这个,而且我已经过了项目的最后期限。如果可能的话,我宁愿不必更改它们。

我正在考虑向 Java bean 添加某种“坐标”属性并使用上面的 switch case 传递精确坐标,但即使我这样做了,我仍然不知道如何使用它所以我可以展示附近的位置。

编辑:我正在使用 Android Studio 3.2.1

最佳答案

链接的教程具有以下代码块,其中检测和显示地点:

@SuppressLint("MissingPermission")
private void getCurrentPlaceData() {
Task<PlaceLikelihoodBufferResponse> placeResult = placeDetectionClient.
getCurrentPlace(null);
placeResult.addOnCompleteListener(new OnCompleteListener<PlaceLikelihoodBufferResponse>() {
@Override
public void onComplete(@NonNull Task<PlaceLikelihoodBufferResponse> task) {
Log.d(TAG, "current location places info");
List<Place> placesList = new ArrayList<Place>();
PlaceLikelihoodBufferResponse likelyPlaces = task.getResult();
for (PlaceLikelihood placeLikelihood : likelyPlaces) {
placesList.add(placeLikelihood.getPlace().freeze());
}
likelyPlaces.release();

PlacesRecyclerViewAdapter recyclerViewAdapter = new
PlacesRecyclerViewAdapter(placesList,
CurrentLocationNearByPlacesActivity.this);
recyclerView.setAdapter(recyclerViewAdapter);
}
});
}

此处,getCurrentPlace 方法使用当前设备位置,这可能是导致您出现问题的原因。事实上,地点检测客户端 documentation本身指出:(强调我的)

The Place Detection API provides quick access to the device's current place, and offers the opportunity to report the location of the device at a particular place (like a check in).

正如您所说,Android Places SDK 中似乎没有任何 API 可以为某个位置提供“附近的地点”功能。甚至上面的内容都试图将当前用户位置与已知地点相关联(而不是一组没有额外信息的坐标),并且似乎并不是要通过设计来搜索附近的地点(尽管它显然可以是完成)。

但是,Place Search API 可用于满足您的要求(我已经在一个应用程序中使用了它,该应用程序执行的操作与您希望执行的操作类似)。它包括 Nearby Search Requests 的端点,其中可以传递静态位置。唯一的缺点是您必须通过 Retrofit 或类似的东西处理 HTTP 调用,因为 SDK 没有用于此 API 的现有框架。

关于android - 如何在静态位置而不是当前位置列出附近地点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53582430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com