2012-12-19 1 views
2

android에 addMarker googlemaps api라는 새로운 기능을 사용하고 있습니다.Google지도 API v2로 마커 기능 추가 android

map.addMarker(new MarkerOptions() 
     .position(new LatLng(40.417325, 40.417325)) 
     .title("Hello!")); 

위대한 작품이지만, 내 질문은 위도와 위도의 매개 변수를 나타내는 대신 검색 문자열을 나타내는 마커를 어떻게 배치 할 수 있습니까? 같은

뭔가 :

"레 글라 LUJAN (42), 세비야, 스페인"당신은 지오 코딩을 사용하여, 그 "문자열 검색"과 관련된 위도와 경도를 찾아야 할 것이다

답변

1

. Android에는 Geocoder 클래스가 있으며 다양한 지오 코딩 웹 서비스를 사용할 수 있습니다.

1

여기 Google MapView의 모든 코드를 게시하고 있습니다. 그것은 Fragement와 Activity를 위해 잘 작동합니다. 이 코드는 API를 V2

public class GeneralGoogleMapviewFragment extends Fragment { 

private GoogleMap mMap; 
private static final LatLng SYDNEY = new LatLng(31.0162, 71.6926); 
private static final LatLng MOUNTAIN_VIEW = new LatLng(32.9043, 110.4677); 
protected static final String TAG = "GeneralGoogleMapview"; 
private List<MyDataHolder> list; 
private JSONObject jsonObj; 
Intent intent; 

MapView m; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Bundle bundle = getArguments(); 
    String extra = bundle.getString("json"); 
    if (extra != null) { 
     try { 
      jsonObj = new JSONObject(extra); 
      Logger.d(TAG, "Extra value is :" + extra.toString()); 
      list = Parser.parse(jsonObj); 

     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
    try { 
     MapsInitializer.initialize(this.getActivity()); 
    } catch (GooglePlayServicesNotAvailableException e) { 
     e.printStackTrace(); 
    } 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.mapview, container, false); 
    m = (MapView) v.findViewById(R.id.mapView); 
    m.onCreate(savedInstanceState); 
    loadMap(list); 
    return v; 

} 

@Override 
public void onResume() { 
    super.onResume(); 
    m.onResume(); 
    // setupMap(); 

} 

@Override 
public void onPause() { 

    super.onPause(); 

    m.onPause(); 

} 

@Override 
public void onDestroy() { 

    super.onDestroy(); 

    m.onDestroy(); 

} 

@Override 
public void onLowMemory() { 

    super.onLowMemory(); 

    m.onLowMemory(); 

} 

public void loadMap(List<MyDataHolder> markerlist) { 

    mMap = m.getMap(); 
    MyDataHolder todaymarker; 
    if (markerlist != null) { 
     Logger.d(TAG, " No of Markers" + markerlist.size()); 
     for (int i = 0; i < markerlist.size(); i++) { 
      todaymarker = markerlist.get(i); 
      // Logger.d(
      // TAG, 
      // " Marker Detail : " + " Latitude " 
      // + todaymarker.getLocation().getLatitude() + " Longitude" 
      // + todaymarker.getLocation().getLongitude() + " title " 
      // + todaymarker.getEvents().getTitle()); 
      mMap.addMarker(new MarkerOptions() 
        .position(
          new LatLng(todaymarker.getLoc_latitude(), 
            todaymarker.getLoc_longitude())) 
        .title(todaymarker.getName()) 
        .icon(BitmapDescriptorFactory 
          .fromResource(R.drawable.marker_icon))); 
     } 
    } 

    mMap.setOnMarkerClickListener(new OnMarkerClickListener() { 

     @Override 
     public boolean onMarkerClick(Marker marker) { 
      MyDataHolder todaymarker, todaymarker2 = null; 
      if (list != null) { 
       Logger.d(TAG, " No of Markers" + list.size()); 
       for (int i = 0; i < list.size(); i++) { 
        todaymarker = list.get(i); 
        if (todaymarker.getName().equals(marker.getTitle())) 
         todaymarker2 = todaymarker; 
       } 
      } 

      Intent intent = new Intent(); 
      intent.setClass(getActivity(), SpecificPOI_Activity.class); 
      intent.putExtra("poi", todaymarker2); 
      intent.putExtra("type", "sobre"); 
      startActivity(intent); 
      return true; 
     } 
    }); 

    // mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new 
    // LatLng(31.50099,74.324741), 16.0f)); 
    /* 
    * mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new 
    * LatLng(Util.currentLocation.getLatitude(), 
    * Util.currentLocation.getLongitude()), 16.0f)); 
    */ 
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
      -16.677224, -49.267698), 16.0f)); 
    mMap.setMyLocationEnabled(true); 

} 

    } 

나는 또한 게시하고 XML 파일 mapview.xml를 위해 작성되었습니다