2014-12-03 59 views
1

我用我的Android应用程序从谷歌autocompleteplaces,有时你可以在一个地点名称填写,并自动填充它为你喜欢这里:谷歌自动完成的地方,地点名称,纬度/经度

enter image description here

我想从它,所以我使用的地理编码器来获取纬度/经度:

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

        if (addresses.size() > 0) { 
         latitude = addresses.get(0).getLatitude(); 
         longitude = addresses.get(0).getLongitude(); 

现在,它并没有给我任何ADRESS因为场地的名称是它。 如何从中获取纬度/经度?

回答

0

这是我的代码,我实现了。

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并移动我的地图。

相关问题