google-maps - para - google maps sin internet android
Usar Google Map en la aplicaciĆ³n Blackberry (3)
¿Alguien puede decirme cómo usar los mapas de Google en el desarrollo de aplicaciones Blackberry en lugar del mapa de Blackberry?
Recientemente tuve la idea de utilizar el sitio web de Google Maps desde el navegador. Campo, pero no es posible, ya que GMaps se basan en JavaScript y es mal soportado por el navegador nativo de Blackberry.
En realidad, hay 2 formas de usar Google Maps en Blackberry:
- instalar la aplicación Google Maps Mobile (ver ejemplo de uso )
- use Google Static Maps API para generar y enviar imágenes en la solicitud del dispositivo. Esto requerirá la implementación del lado del servidor y registrarse para la API de Google Maps.
Aquí hay un pequeño ejemplo:
El formulario para ver la imagen estática de Google Maps:
public class frmMap extends Form implements CommandListener {
Command _back;
MIDlet midlet;
Form dis;
public frmMap(String title, ImageItem img, MIDlet m, Form d){
super(null);
this.midlet = m;
this.dis = d;
_back = new Command("Back", Command.BACK, 1);
addCommand(_back);
append(img);
setCommandListener(this);
}
public void commandAction(Command c, Displayable d) {
if(c == _back){
Display.getDisplay(midlet).setCurrent(dis);
}
}
}
La clase inet de clase para descargar la imagen estática:
public class INETclass implements Runnable {
private String _location = null;
private HttpConnection inet;
private Pispaal _m;
public String url = null;
public INETclass(String location, Pispaal m){
_location = location;
_m = m;
}
public void run() {
try
{
//Setup the connection
inet = (HttpConnection)Connector.open(url);
inet.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
int rc = inet.getResponseCode();
//Responsecode controleren
if(rc == HttpConnection.HTTP_OK){
//Open input stream to read the respone
DataInputStream is = new DataInputStream(inet.openInputStream());
StringBuffer sb = new StringBuffer();
int ch;
long len = -1;
byte[] buffer = null;
if(_location == null){
len = is.available();
}
if(len != -1){
if(_location == null){
buffer = IOUtilities.streamToBytes(is);
}else{
while((ch = is.read()) != -1){
sb.append((char)ch);
}
}
}
is.close();
if(_location == null){
_m.OnINETComplete(buffer);
}else{
_m.Alert(sb.toString());
}
}else{
_m.Alert("URL " + url + " geeft response code: " + rc);
try
{
inet.close();
}catch(Exception e){
_m.Alert("Error: " + e.getMessage());
}
}
}
catch(Exception e)
{
_m.Alert("Error: " + e.getMessage());
System.out.println("Error: " + e.getMessage());
}
finally
{
try
{
if(inet != null){ inet.close(); }
Thread.currentThread().join(); //Making sure this thread dies
}catch(Exception e){
_m.Alert("Error: " + e.getMessage());
System.out.println("Error: " + e.getMessage());
}
}
}
}
La acción de botón que inicia la descarga y la acción de devolución de llamada que carga el formulario para ver la imagen
public void commandAction(Command c, Displayable d) {
synchronized(c){
String loc = _location.getText();
if(loc.indexOf(",") > 0){
//if(c == _strCommand){
//INETclass inet = new INETclass(loc, this);
//Thread tInet = new Thread(inet);
//tInet.start();
//Alert("Locatie word doorgestuurd. Even geduld");
//}else
if(c == _mapView){
INETclass inet = new INETclass(null, this);
inet.url = "http://www.qeueq.com/gmap.php?location=" + this.lat + "," + this.lon + "&size=" + this.width + "x" + this.height + ";deviceside=true";
Thread tInet = new Thread(inet);
tInet.start();
}
}else{
Alert("GPS locatie is nog niet beschikbaar.");
}
}
}
public void UpdateLocation(double lat, double lon){
String location = lat + "," + lon;
this.lat = lat;
this.lon = lon;
synchronized(location){
_location.setText(location);
INETclass inet = new INETclass(location, this);
Thread tInet = new Thread(inet);
tInet.start();
}
}
Refine y edite el código para que se ajuste a sus necesidades. Me tomó un tiempo para hacerlo bien.
Ahora es posible utilizar Google Maps en lugar de mapas de BlackBerry con nuestros propios datos, como en la imagen.
Si está buscando utilizar google maps para mostrar sus propias ubicaciones / marcadores, puede invocar google maps usando ApplicationDescriptor
desde su aplicación. Compruebe si hay mapas de Google en el dispositivo usando CodeModuleManager.getModuleHandle("GoogleMaps");
devuelve un número entero donde no cero significa que está disponible. Luego puede agregar ubicaciones en su archivo KML
, incluso puede personalizar punteros de ubicación usando etiquetas de archivos KML.
El ejemplo vinculado por Max permite solo un marcador. Por lo tanto, se necesita un archivo KML si se van a agregar marcadores múltiples.
Puede ver el sencillo tutorial aquí para principiantes.