MapsActivity.java :  » UnTagged » socialconferenceproject » at » socialconference » app » Android Open Source

Android Open Source » UnTagged » socialconferenceproject 
socialconferenceproject » at » socialconference » app » MapsActivity.java
/** 
 * Copyright 2010 Erlacher Felix, Estgfaeller Wolfgang, Ferula Patrick
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package at.socialconference.app;

import java.util.List;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import android.os.Bundle;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;

public class MapsActivity extends MapActivity
{    

  private MapView mapView;
  private GeoPoint destination;
  private MapController mapController;

  private int minLat = (int)(+81 * 1E6);
  private int maxLat = (int)(-81 * 1E6);
  private int minLon  = (int)(+181 * 1E6);
  private int maxLon  = (int)(-181 * 1E6);
  private int lat;
  private int lon;

  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mapview);

    lat = (int)(getIntent().getDoubleExtra("lat",0)* 1E6);
    lon = (int)(getIntent().getDoubleExtra("lon",0)* 1E6);

    mapView = (MapView) findViewById(R.id.mapView);

    mapController = mapView.getController();
    
    setupMap();

  }

  @Override
  protected boolean isRouteDisplayed() {
    return false;
  }



  private void setupMap(){

    mapView.setBuiltInZoomControls(true); 
    mapView.displayZoomControls(true);

    if (lat != 0 && lon !=0)  {

      minLat = (minLat > lat) ? lat : minLat;
      maxLat = (maxLat < lat) ? lat : maxLat;                
      minLon = (minLon > lon) ? lon : minLon;
      maxLon = (maxLon < lon) ? lon : maxLon;
      
      destination = new GeoPoint(lat,lon);
      
      mapController.zoomToSpan((maxLat - minLat),(maxLon - minLon));
      mapController.animateTo(new GeoPoint((maxLat + minLat)/2,(maxLon + minLon)/2 ));

      MapOverlay mapOverlay = new MapOverlay();
      List<Overlay> listOfOverlays = mapView.getOverlays();
      listOfOverlays.clear();
      listOfOverlays.add(mapOverlay);   

      mapView.invalidate();

    }



  }


  class MapOverlay extends com.google.android.maps.Overlay
  {
    @Override
    public boolean draw(Canvas canvas, MapView mapView, 
        boolean shadow, long when) 
    {
      super.draw(canvas, mapView, shadow);                   

      //---translate the GeoPoint to screen pixels---
      Point screenPts = new Point();
      mapView.getProjection().toPixels(destination, screenPts);

      //---add the marker---
      Bitmap bmp = BitmapFactory.decodeResource(
          getResources(), R.drawable.pushpin); 
      canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);         
      return true;
    }
  } 

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.