Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谷歌自动完成地点,地点名称为lat/lng_Java_Android_Google Maps_Google Maps Api 3_Autocomplete - Fatal编程技术网

Java 谷歌自动完成地点,地点名称为lat/lng

Java 谷歌自动完成地点,地点名称为lat/lng,java,android,google-maps,google-maps-api-3,autocomplete,Java,Android,Google Maps,Google Maps Api 3,Autocomplete,我在我的android应用程序上使用谷歌的autocompleteplaces,有时你可以填写场馆名称,它会为你自动完成,如下所示: 我想从中获取lat/lng,因此我使用地理编码器: List<Address> addresses = geoCoder.getFromLocationName(autoCompView.getText().toString(), 1); if (addresses.size() > 0) {

我在我的android应用程序上使用谷歌的autocompleteplaces,有时你可以填写场馆名称,它会为你自动完成,如下所示:

我想从中获取lat/lng,因此我使用地理编码器:

List<Address> addresses = geoCoder.getFromLocationName(autoCompView.getText().toString(), 1);

                    if (addresses.size() >  0) {
                        latitude = addresses.get(0).getLatitude();
                        longitude = addresses.get(0).getLongitude();
现在它没有给我任何地址,因为里面有场地的名称。
如何从中获取lat/lng?

Google Autocomplete Place API返回一个id和一个引用。 您可以使用此返回的id查询PlacesAPI并从中获取纬度/经度信息

有关更多详细信息,请参阅:


这是我实现的代码

PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)
        getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
    AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
            .setCountry("KE")
            .build();

    autocompleteFragment.setFilter(typeFilter);
    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(Place place) {
            // TODO: Get info about the selected place.
            Log.i("Place: " , String.valueOf(place.getName()));
            mMap.clear();
            displayMarkersOnMap();
            LatLng selectedPlace = place.getLatLng();
            mMap.moveCamera(CameraUpdateFactory.newLatLng(selectedPlace));
            mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
            MarkerOptions selectedPlaceMarker = new MarkerOptions();
            selectedPlaceMarker.position(selectedPlace);
            selectedPlaceMarker.title(String.valueOf(place.getName()));
            mMap.addMarker(selectedPlaceMarker);
        }

        @Override
        public void onError(Status status) {
            // TODO: Handle the error.
            Log.i("An error occurred: " , String.valueOf(status));
        }
    });
基本上,我添加了过滤器,将结果过滤到顶部的国家肯尼亚。然后,我创建一个placeSelectedListener,当用户单击某个位置时将调用它。从中,我分配从该位置接收到的LatLng,并将我的地图移动到该位置