On Thu, Sep 3, 2009 at 1:06 PM, sweet <[email protected]> wrote:
>
> hello everybody !!!
> I make the tutorial Hellomapview (http://developer.android.com/intl/fr/
> guide/tutorials/views/hello-mapview.html<http://developer.android.com/intl/fr/%0Aguide/tutorials/views/hello-mapview.html>)
> if anyone have made this
> tuto i would like he explain to me the step 4 in the last part :
>
> 4. All that's left is for us to add this OverlayItem to our collection
> in the HelloItemizedOverlay, and add this to the List of Overlay
> objects retrieved from the MapView:
>
> itemizedoverlay.addOverlay(overlayitem);
> mapOverlays.add(itemizedoverlay);
>
> I've well add this OverlayItem to our collection in the
> HelloItemizedOverlay but i don't understand how add this to the List
> of Overlay objects retrieved from the MapView if someone can help me ?
> (I share my code if you see an other mistake)
>
> classe map java :
>
> import java.util.List;
>
> import android.content.Intent;
> import android.graphics.drawable.Drawable;
> import android.os.Bundle;
> import android.view.Menu;
> import android.view.MenuInflater;
> import android.view.MenuItem;
> import android.widget.LinearLayout;
> import android.widget.ZoomControls;
>
> import com.google.android.maps.GeoPoint;
> import com.google.android.maps.MapActivity;
> import com.google.android.maps.MapView;
> import com.google.android.maps.Overlay;
> import com.google.android.maps.OverlayItem;
>
>
> public class Map extends MapActivity {
> List<Overlay> mapOverlays;
> Drawable drawable;
> NewItemizedOverlay itemizedOverlay;
> LinearLayout linearLayout;
> MapView mapView;
> ZoomControls mZoom;
>
>
> @Override
> public void onCreate(Bundle savedInstanceState) {
>
> GeoPoint point = new GeoPoint(19240000,-99120000);
> OverlayItem overlayitem = new OverlayItem(point, "", "");
> itemizedOverlay.addOverlay(overlayitem);
> mapOverlays.add(itemizedOverlay);
> mapOverlays = mapView.getOverlays();
> drawable = this.getResources().getDrawable
> (R.drawable.androidmarker);
> itemizedOverlay = new NewItemizedOverlay(drawable);
>
> super.onCreate(savedInstanceState);
> setContentView(R.layout.map);
> linearLayout = (LinearLayout) findViewById(R.id.zoomview);
> mapView = (MapView) findViewById(R.id.mapview);
> mapView.setBuiltInZoomControls(true);
> mapView.setSatellite(true);
> }
> protected boolean isRouteDisplayed() {
> return false;
> }
>
> class NewItemizedOverlay java:
>
> import java.util.ArrayList;
> import android.graphics.drawable.Drawable;
> import com.google.android.maps.ItemizedOverlay;
> import com.google.android.maps.OverlayItem;
>
> @SuppressWarnings("unchecked")
> public class NewItemizedOverlay extends ItemizedOverlay {
>
> private ArrayList<OverlayItem> mOverlays = new
> ArrayList<OverlayItem>
> ();
>
> public NewItemizedOverlay(Drawable defaultMarker) {
> super(boundCenterBottom(defaultMarker));
> // TODO Auto-generated constructor stub
> }
> public void addOverlay(OverlayItem overlay) {
> mOverlays.add(overlay);
> populate();
> }
>
> @Override
> protected OverlayItem createItem(int i) {
> return mOverlays.get(i);
> }
>
>
> @Override
> public int size() {
> return mOverlays.size();
> }
>
> }
>
> xml fil of map:
>
> <?xml version="1.0" encoding="utf-8"?>
> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
> android"
> android:orientation="vertical"
> android:layout_width="fill_parent"
> android:layout_height="fill_parent">
> <com.google.android.maps.MapView
> android:id="@+id/mapview"
> android:layout_width="fill_parent"
> android:layout_height="fill_parent"
> android:clickable="true"
> android:apiKey="0GWRUwsy0_POHxdWofVfhZeFLwtgkcn7ouMfwcg"/>
> <LinearLayout
> android:id="@+id/zoomview"
> android:layout_width="wrap_content"
> android:layout_height="wrap_content"
> android:layout_alignBottom="@id/mapview"
> android:layout_centerHorizontal="true"/>
> </LinearLayout>
>
>
> Thanks
> Sweet
> >
>
Hello Sweet u try this code .....it works....i got this code from same u
defined in the url..but i changed for my own....u look this code it will
help u....and one more thing dont forget to add ur marker image in
res/drawable
All the Best....
package samp.sam11;
import java.io.IOException;
import java.util.List;
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;
import com.google.android.maps.OverlayItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.AlertDialog;
import android.app.Dialog;
import android.graphics.drawable.Drawable;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
public class sam1 extends MapActivity {
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
/** Called when the activity is first created. */
MapView mapView;
EditText edt;
Button bttn;
Geocoder gc;
double lat;
double lon;
List<Overlay> mapOverlays;
Drawable drawable;
HelloItemizedOverlay itemizedOverlay;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
edt=(EditText)findViewById(R.id.edt);
bttn=(Button)findViewById(R.id.bttn);
gc=new Geocoder(this);
bttn.setOnClickListener(new OnClickListener(){
public void onClick(View v)
{
String str=edt.getText().toString();
try {
List<Address> loc=gc.getFromLocationName(str,7);
if(loc.size()!=0)
{
for(int i=0;i<loc.size();++i){
Address x=loc.get(i);
lat=x.getLatitude();
lon=x.getLongitude();
}
gotolocation((lat*1000000),(lon*1000000),mapView);
}
else
{
Dialog locationError = new AlertDialog.Builder(
sam1.this).setIcon(0).setTitle(
"Error").setPositiveButton(R.string.ok,
null)
.setMessage(
"Sorry, your address doesn't
exist.")
.create();
locationError.show();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public void gotolocation(double latitude,double longitude,MapView mymap)
{
GeoPoint p=new GeoPoint((int) latitude,(int) longitude);
mapOverlays = mapView.getOverlays();
drawable =
this.getResources().getDrawable(R.drawable.androidmarker);
itemizedOverlay = new HelloItemizedOverlay(drawable);
mapView.displayZoomControls(true);
OverlayItem overlayitem = new OverlayItem(p, "", "");
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
MapController mc=mapView.getController();
mc.animateTo(p);
int zoomlevel=mapView.getMaxZoomLevel();
mc.setZoom(zoomlevel - 1);
mapView.setSatellite(false);
}
}
Hello Itemized.java:
package samp.sam11;
import java.util.ArrayList;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
public class HelloItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
public HelloItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
// TODO Auto-generated constructor stub
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return mOverlays.get(i);
}
@Override
public int size() {
// TODO Auto-generated method stub
return mOverlays.size();
}
}
Xml file:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="0N4mYu-JbSgm3Q3QzkGKA8MEMHB-9J8IlRZQSGw"
/>
<EditText
android:id="@+id/edt"
android:layout_width="240px"
android:layout_height="wrap_content"
android:hint="City,street"
android:layout_x="12px"
android:layout_y="30px"
>
</EditText>
<Button
android:id="@+id/bttn"
android:layout_width="59px"
android:layout_height="wrap_content"
android:text="@string/go"
android:layout_x="256px"
android:layout_y="30px"
>
</Button>
</AbsoluteLayout>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---