Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to effectively use Google Maps API V2(with MapFragment, Google Map, Marker etc) to an older app that uses API V1(with MapView, GeoPoint etc),
    primarykey
    data
    text
    <p>I was working on a Google Map based project for over 6 months. I was using Google Maps API V1 and its developer API keys. While I was trying to release the app I understood that Google API V1 got deprecated! When I read about Google Maps API V2, I found that MapView, GeoPoint, OverlayItem are usually replaced with fragment, Marker, MapFragment, Google Map etc. </p> <p>my original XML looks like this</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:apiKey="**************my old api key**************"/&gt; </code></pre> <p>Now Google does not provide this key, I need to add a map, and show my overlay items on the same. I am notally confused with this new API. </p> <p>My Java File looks exactly like</p> <pre><code>public class PlacesMapActivity extends MapActivity { // Nearest places PlacesList nearPlaces; // Map view MapView mapView; // Map overlay items List&lt;Overlay&gt; mapOverlays; AddItemizedOverlay itemizedOverlay; GeoPoint geoPoint; // Map controllers MapController mc; Drawable defaultMarker; double latitude; double longitude; OverlayItem overlayitem; String p_u_name; Place reference; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_places); // Getting intent data Intent i = getIntent(); reference = (Place) i.getSerializableExtra("place_reference"); // Users current geo location String user_latitude = i.getStringExtra("user_latitude"); String user_longitude = i.getStringExtra("user_longitude"); // Nearplaces list nearPlaces = (PlacesList) i.getSerializableExtra("near_places"); mapView = (MapView) findViewById(R.id.mapView); mapView.setBuiltInZoomControls(true); mapOverlays = mapView.getOverlays(); // Geopoint to place on map geoPoint = new GeoPoint((int) (Double.parseDouble(user_latitude) * 1E6),(int) (Double.parseDouble(user_longitude) * 1E6)); // Drawable marker icon Drawable drawable_user = this.getResources().getDrawable(R.drawable.mark_red); itemizedOverlay = new AddItemizedOverlay(drawable_user, this); // Map overlay item overlayitem = new OverlayItem(geoPoint, "Your Location","That is you!"); itemizedOverlay.addOverlay(overlayitem); mapOverlays.add(itemizedOverlay); itemizedOverlay.populateNow(); Drawable drawable = this.getResources().getDrawable(R.drawable.mark_blue); itemizedOverlay = new AddItemizedOverlay(drawable, this); mc = mapView.getController(); // These values are used to get map boundary area // The area where you can see all the markers on screen int minLat = Integer.MAX_VALUE; int minLong = Integer.MAX_VALUE; int maxLat = Integer.MIN_VALUE; int maxLong = Integer.MIN_VALUE; // check for null in case it is null if (nearPlaces.results != null) { // loop through all the places for (Place place : nearPlaces.results) { latitude = place.geometry.location.lat; // latitude longitude = place.geometry.location.lng; // longitude // Geopoint to place on map geoPoint = new GeoPoint((int) (latitude * 1E6), (int) (longitude * 1E6)); // Map overlay item overlayitem = new OverlayItem(geoPoint,"0",place.reference); itemizedOverlay.addOverlay(overlayitem); // calculating map boundary area minLat = (int) Math.min( geoPoint.getLatitudeE6(), minLat ); minLong = (int) Math.min( geoPoint.getLongitudeE6(), minLong); maxLat = (int) Math.max( geoPoint.getLatitudeE6(), maxLat ); maxLong = (int) Math.max( geoPoint.getLongitudeE6(), maxLong ); } mapOverlays.add(itemizedOverlay); // showing all overlay items itemizedOverlay.populateNow(); } // Adjusting the zoom level so that you can see all the markers on map mapView.getController().zoomToSpan(Math.abs( minLat - maxLat ), Math.abs( minLong - maxLong )); MapController controller = mapView.getController(); controller.setZoom(15); // Showing the center of the map mc.animateTo(new GeoPoint((maxLat + minLat)/2, (maxLong + minLong)/2 )); mapView.postInvalidate(); } @Override protected boolean isRouteDisplayed() { return false; } } </code></pre> <p><strong>I want to know if there is any means to use my old code to support Google Maps API V2?</strong> </p>
    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.
 

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