Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 14/12/12, 14:22:06
Array

[xs_avatar]
Tyulio Tyulio no está en línea
Usuario poco activo
· Votos compra/venta: (2)
 
Fecha de registro: nov 2012
Mensajes: 32
Modelo de smartphone: iPhone 5
Tu operador: Orange
Integrar marcador a mapa

Hola compañeros, estoy liado con temas de mapas y tengo un problema. Debo crear un mapview y meterle unas coordenadas a través de telnet para que posteriormente me centre ese punto en el mapa y le ponga una imagen que al pincharla muestre un mensaje.

Consigo hacer todo pero a la hora de poner la imagen y el mensaje me peta la aplicación. Escribiendo en el código manualmente las coordenadas consigo hacerlo pero a la hora de hacerlo como si fuera real con el GPS, no hay manera.

Os dejo el código a ver si alguien puede echarme una mano.

import java.util.List;

import android.graphics.drawable.Drawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
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;
import com.google.android.maps.OverlayItem;

public class Mapas extends MapActivity {
MapController mc;
MapView mapView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapas);
MapView mapView = (MapView) findViewById(R.id.mapview);

mapView.setBuiltInZoomControls(true);
mapView.setSatellite(true);
registrarListenerGPS();

}

private void registrarListenerGPS(){
LocationManager mlocManager =
(LocationManager)getSystemService(this.LOCATION_SE RVICE);
LocationListener mlocListener = new GPSListener();
mlocManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}
public class GPSListener implements LocationListener{

@Override
public void onLocationChanged(Location location) {
// Si cambian las coordenadas recibidas del GPS
location.getLatitude();
location.getLongitude();

GeoPoint p = new GeoPoint(
(int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));

mc.animateTo(p);
mc.setCenter(p);
mc.setZoom(19);

OverlayItem overlayitem = new OverlayItem(p, "Aquí vivo yo", "LAT: " + location.getLatitude() * 1E6 + "\nLON: " + location.getLongitude() * 1E6);
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = getResources().getDrawable(R.drawable.logo);
MapaItemizedOverlay itemizedoverlay = new MapaItemizedOverlay(drawable);
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
}

@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub

}

}

@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}}


Y el otro archivo para el overlay:


import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;

import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

@SuppressWarnings("rawtypes")
public class MapaItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
Context mContext;
public MapaItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}
public MapaItemizedOverlay(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}
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();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}



A ver si consigo hacerlo porque aunque no llegue a tiempo para entregarlo, es ya un reto personal jejeje.


Saludos!!!
Responder Con Cita


Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 01:09:43 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /