2016-12-05 112 views
-5

我是一个在android开发的总新手,试图在这里学习。我试图让标记显示在地图上,并且可以显示纬度和经度。我想将这些纬度和经度转换为相应的位置名称,并且我知道可以使用反向地理编码器,但我不知道如何对其进行编码。谷歌地图标记显示标题中的位置名称

这是我的代码。

public void onMapReady(final GoogleMap googleMap) { 
    mMap = googleMap; 

    LatLng sydney = new LatLng(-34, 151); 
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 

    mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 

     @Override 
     public void onMapClick(LatLng point) { 

      String address; 
      String city; 
      mMap.clear(); 


      Geocoder geocoder; 
      List<Address> addresses; 

      geocoder = new Geocoder(MapsActivity.this, Locale.getDefault()); 

      try { 
       addresses = geocoder.getFromLocation(point.latitude, point.longitude, 1); 

       address = addresses.get(0).getAddressLine(0); 
       city = addresses.get(0).getLocality(); 

       MarkerOptions markerOptions = new MarkerOptions() 
         .position(point) 
         .title(city); 

       Marker marker = mMap.addMarker(markerOptions); 
       marker.showInfoWindow(); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } 
    });} 

回答

0

如果你想建立一个自定义地点选择器像尤伯杯或swiggy你要写信给谷歌Places API的服务调用来检索位置的详细信息。您必须进行异步服务调用以获取放置标记的位置。

如果你想使用谷歌的帮助,那么你可以去Google PlacePicker。这是很容易,快速和有效的性能和应用程序的重量方面。

0

您可以使用集合框架来映射(匹配)带有标记的地址。例如, Map«String,String»address_match; 第一个字符串将是标记ID:每当您创建标记getid()并将其与地址放置在收集地图对象中时。这样,您就可以通过ID标记时,点击

+0

市场搜索已经显示经纬度,我只是需要把它转化利用地理编码的地名。我知道这是可能的,但我不知道如何正确编码。 –