2012-04-26 14 views

Respuesta

4

Niza cuestión. Me enfrenté a un problema similar antes. Pero, más tarde, descubrí la solución.

Así es como se puede resolver.

demo con Geolocalización API de Phonegap

  1. Obtener la geolocalización a través de la API de geolocalización.

    vat lat, lng; 
    var geoLocationOptions = { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }; 
    navigator.geolocation.getCurrentPosition(geoLocationSuccess,geoLocationError,geoLocationOptions); 
    
    function geoLocationSuccess(position) { 
        lat = position.coords.latitude; 
        lng = position.coords.longitude; 
        Ext.Msg.alert("Geolocation","Latitude:"+ lat +", Longitude:"+ lng); 
    } 
    
    function geoLocationError() { 
        Ext.Msg.alert('Error','Error while getting geolocation'); 
    } 
    
  2. A continuación, utilice los valores de latitud y GNL para establecer el centro del mapa a la misma, así como establecer la posición del marcador a ese valor.

    ... 
    ... 
    var position = new google.maps.LatLng(lat,lng); 
    map = this.add({ 
         xtype: 'map', 
         getLocation: true, 
         autoLoad: true, 
         mapOptions: { 
          zoom: 15, 
          center: position, 
          mapTypeId: google.maps.MapTypeId.ROADMAP, 
          navigationControl: true, 
          zoomControl: true, 
          mapTypeControl: true, 
          scrollwheel: true, 
          scaleControl: true, 
          zoomControlOptions: { 
           style: google.maps.ZoomControlStyle.LARGE 
          } 
         } 
        }); 
    
    marker = new google.maps.Marker({ 
         id: 'geoLocMarker', 
         position: position, 
         map: map.getMap(), 
         visible: true 
    }); 
    ... 
    ... 
    
+0

Gracias por el tiempo, he probado el código anterior. Pero no funcionó. Quiero implementar en Sencha touch2.0 ... si el código anterior funciona, ¿pueden decirme cómo puedo implementarlo? –

+0

¿Dónde te enfrentas al problema? ¿Qué parte del código? –

+0

el código anterior donde quiero agregar excatly ... y puede por favor elobrate la estructura sabia ..... –

0

Es mucho más simple si usted sólo tiene que utilizar Ext.Map.getGeo() de la siguiente manera:

var geo = extmap.down("#Map").getGeo(); 
    var currentPosition = new google.maps.LatLng(geo.getLatitude(), geo.getLongitude()); 

Mientras que haya una instancia su mapa, se debe obtener la ubicación actual si el navegador de cliente te permite obtener eso.

HTH!

0

También he trabajado para la aplicación simillar usando sencha touch 2.3.1
Usando la clase Ext.util.Geolocation para obtener la ubicación actual y actualizar automáticamente la posición actual usando el siguiente código.

Ext.create('Ext.util.Geolocation', { 
autoUpdate: true, 
allowHighAccuracy: true, 
frequency: '5000', // set the milliseconds for the location update 
listeners: { 
locationupdate: function(geo) { 
    latitude=Global.currentUserLocations.currentLat; 
    longitude=Global.currentUserLocations.currentLong; 
    if(Global.currentUserPositionMarker) 
    { 
     latlng1=new google.maps.LatLng(latitude, longitude); 
     Global.currentUserPositionMarker.setPosition(latlng1); 
    } 
    } 
} 
}); 

El código anterior trabajó para mí y ya he utilizado en mi aplicación para conseguir CurrentLocation y movido el marcador en currentPosition.

Cuestiones relacionadas