Android 谷歌服务地点选择器设置 LatLngBounds() 不工作

标签 android google-maps android-studio

我在我的应用程序中使用 PlacePicker。突然间它的行为很糟糕。当它启动时指向 (0.0, 0.0) lat lng。 我不确定谷歌服务是否改变了什么。早些时候它工作正常,因为从 3 天开始它不工作了。

我是不是做错了什么

这就是我启动 Activity 的方式。

private void launchPlacePicker(double latitude, double longitude) {
    try {
        showProgress(true);
        PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();

        Log.d(TAG, " launchPlacePicker " + latitude + " " + longitude);

        builder.setLatLngBounds(MapUtils.getLatLngBounds(new LatLng((double) latitude, (double) longitude)));

        startActivityForResult(builder.build(this), PLACE_PICKER_REQUEST);
    } catch (GooglePlayServicesRepairableException e) {
        showProgress(false);
        Log.e(TAG, "GooglePlayServicesRepairableException", e);
    } catch (GooglePlayServicesNotAvailableException e) {
        showProgress(false);
        Log.e(TAG, "GooglePlayServicesNotAvailableException", e);
    }
}

这就是我创建 LatLngBounds 的方式

public static LatLngBounds getLatLngBounds(LatLng center) {
    double radius = 100;
    LatLng southwest = SphericalUtil.computeOffset(center, radius * Math.sqrt(2.0), 225);
    LatLng northeast = SphericalUtil.computeOffset(center, radius * Math.sqrt(2.0), 45);
    return new LatLngBounds(southwest, northeast);
}

我尝试创建如下所示的 LatLngBounds,结果仍然相同。

public static LatLngBounds getLatLngBounds(LatLng center) {
    LatLngBounds.Builder builder = LatLngBounds.builder();
    builder.include(center);
    return builder.build();
}

谁能帮帮我

最佳答案

很遗憾,您将不得不等待 Google 在未来的 Google Play 服务版本中解决该问题。

您的代码没有任何问题,Google Play 服务的最新更新导致地点选择器 UI 小部件出现一些严重问题。我首先注意到 setLatLngBounds() 方法在 Google Play Services 9.0.82 中不再有效。在 9.0.83 中,搜索图标消失了。

请参阅我关于此问题的帖子:Android PlacePicker no longer has Search icon after updating to Google Play Services 9.0.83

请参阅来自 Google Maps API 错误和功能网站的错误报告: Bug: Search Icon not visible in the latest play service update (Version:9.0.83) ------ Bug: Place Picker not showing search icon. ------ PlacePicker search icon is gone after updating to Google Play Services 9.0.83

您可以通过调用 setLatLngBounds() 方法来稍微解决这个问题。 PlacePicker 将默认为您当前的位置。我在我的应用程序中丢失了一些功能,但这总比让最终用户尝试从大西洋往回移动要好。对我来说,缺少搜索图标仍然是我的主要问题。

关于Android 谷歌服务地点选择器设置 LatLngBounds() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37296991/

相关文章:

java - 如何动态添加某个元素下方的相对布局

java - Gson 在 "$Types.resolve"上溢出并出现 StackOverflow 异常

安卓 6.0 棉花糖。无法写入 SD 卡

java - 谷歌地图可以用于非 GPS 相关功能,例如提供游戏 map 吗?

c# - 将 Google map 包含在 .Net Core 中的正确方法?

android - 调试端口 (8700) 正忙,请确保没有其他 Activity 的调试连接到同一应用程序?

android - 安卓新手

google-maps - 如何获取谷歌地图中某个位置的MID?

android - ndk-build 失败,process_begin : CreateProcess(NULL, uname -a, ...) 失败

android - 通过绑定(bind)单击提交时从 ViewModel 中清除 EditText