我可以将LatLng对象用作double吗?

时间:2016-07-18 15:14:35

标签: java android google-maps double

我处于一个尴尬的地方,我需要将LatLng对象用于double。请帮帮我。现在澄清一下:由于代码的其他部分,我不能使用2个变量而不是1个。

以下是代码:

protected LatLng end;

Geocoder gc = new Geocoder(this);
    List<Address> list = gc.getFromLocationName(location, 1);
    Address add = list.get(0);
    String addressline = add.getAddressLine(0);
    Toast.makeText(this, addressline, Toast.LENGTH_LONG).show();

    end = new LatLng(add.getLatitude(), add.getLongitude());

    gotoLocation(end, DEFAULTZOOM);

    MarkerOptions options = new MarkerOptions()
            .position(new LatLng(end));
    marker = mMap.addMarker(options);

    if (marker != null) {
        marker.remove();
    }
}

gotoLocation代码:

private void gotoLocation(double lat, double lng,
                              float zoom) {
        LatLng ll = new LatLng(lat, lng);
        CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
        mMap.moveCamera(update);
        mMap.animateCamera(update);
    }

问题是如果我将end设为双,那么它会在此行上发出错误 - end = new LatLng(add.getLatitude(), add.getLongitude());说它期望一个LatLng对象。当我将它设为LatLng对象时,行gotoLocation(end, DEFAULTZOOM);会收到一个错误,告诉我 - 第一个参数类型错误(基本上它找到了一个LatLng对象而不是一个double)。

感谢您一直阅读!

1 个答案:

答案 0 :(得分:1)

为什么不改变gotoLocation来接受LatLng对象

private void gotoLocation(LatLng ll,float zoom) {
    CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
    mMap.moveCamera(update);
    mMap.animateCamera(update);
}