Note that there are some explanatory texts on larger screens.

plurals
  1. POandroid How to make a draggable pin on maps v2
    primarykey
    data
    text
    <p>Hi to all I am trying to make a pin .. The issue is I couldn't find related source with my question . I've checked commonsware topics but none of them covers a draggable pin. Actually one of them has but it is related with maps v1 not v2 .. So how can I make a pin that occurs on users current position , and then could be dragged anywhere on the map when they tap on the pin.. </p> <p>Here is a sample code which has a pin (marker) and finds user location ..</p> <pre><code>public class MainActivity extends AbstractMapActivity implements OnNavigationListener, OnInfoWindowClickListener, OnMyLocationChangeListener { private static final String STATE_NAV="nav"; private static final int[] MAP_TYPE_NAMES= { R.string.normal, R.string.hybrid, R.string.satellite, R.string.terrain }; private static final int[] MAP_TYPES= { GoogleMap.MAP_TYPE_NORMAL, GoogleMap.MAP_TYPE_HYBRID, GoogleMap.MAP_TYPE_SATELLITE, GoogleMap.MAP_TYPE_TERRAIN }; private GoogleMap map=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (readyToGo()) { setContentView(R.layout.activity_main); SupportMapFragment mapFrag= (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map); initListNav(); map=mapFrag.getMap(); if (savedInstanceState == null) { CameraUpdate center= CameraUpdateFactory.newLatLng(new LatLng(40.76793169992044, -73.98180484771729)); CameraUpdate zoom=CameraUpdateFactory.zoomTo(15); map.moveCamera(center); map.animateCamera(zoom); } addMarker(map, 40.748963847316034, -73.96807193756104, R.string.un, R.string.united_nations); addMarker(map, 40.76866299974387, -73.98268461227417, R.string.lincoln_center, R.string.lincoln_center_snippet); addMarker(map, 40.765136435316755, -73.97989511489868, R.string.carnegie_hall, R.string.practice_x3); addMarker(map, 40.70686417491799, -74.01572942733765, R.string.downtown_club, R.string.heisman_trophy); map.setInfoWindowAdapter(new PopupAdapter(getLayoutInflater())); map.setOnInfoWindowClickListener(this); map.setMyLocationEnabled(true); map.setOnMyLocationChangeListener(this); } } @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { map.setMapType(MAP_TYPES[itemPosition]); return(true); } @Override public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); savedInstanceState.putInt(STATE_NAV, getSupportActionBar().getSelectedNavigationIndex()); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); getSupportActionBar().setSelectedNavigationItem(savedInstanceState.getInt(STATE_NAV)); } @Override public void onInfoWindowClick(Marker marker) { Toast.makeText(this, marker.getTitle(), Toast.LENGTH_LONG).show(); } @Override public void onMyLocationChange(Location lastKnownLocation) { Log.d(getClass().getSimpleName(), String.format("%f:%f", lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude())); } private void initListNav() { ArrayList&lt;String&gt; items=new ArrayList&lt;String&gt;(); ArrayAdapter&lt;String&gt; nav=null; ActionBar bar=getSupportActionBar(); for (int type : MAP_TYPE_NAMES) { items.add(getString(type)); } if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { nav= new ArrayAdapter&lt;String&gt;( bar.getThemedContext(), android.R.layout.simple_spinner_item, items); } else { nav= new ArrayAdapter&lt;String&gt;( this, android.R.layout.simple_spinner_item, items); } nav.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); bar.setListNavigationCallbacks(nav, this); } private void addMarker(GoogleMap map, double lat, double lon, int title, int snippet) { map.addMarker(new MarkerOptions().position(new LatLng(lat, lon)) .title(getString(title)) .snippet(getString(snippet))); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload