Skip to content Skip to sidebar Skip to footer

How Can I Get Marker On Current Location In Map In Sencha-touch2.0

Hey friends i m new to Sencha Touch platform. And I want to find user current location with marker please help me out. i stuck in this condition. Is there any new good tutorial fo

Solution 1:

Nice question. I faced a similar problem before. But, later, I figured out the solution.

Here's how you can solve it.

Demo with Phonegap's Geolocation API

  1. Get the geolocation via the geolocation api.

    vat lat, lng;
    var geoLocationOptions = { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
    navigator.geolocation.getCurrentPosition(geoLocationSuccess,geoLocationError,geoLocationOptions);
    
    functiongeoLocationSuccess(position) {
        lat = position.coords.latitude;
        lng = position.coords.longitude;
        Ext.Msg.alert("Geolocation","Latitude:"+ lat +", Longitude:"+ lng); 
    }
    
    functiongeoLocationError() {
       Ext.Msg.alert('Error','Error while getting geolocation');
    }
    
  2. Then use the values of lat and lng to set the map's center to it as well as set the marker's position to that value.

    ......varposition=newgoogle.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=newgoogle.maps.Marker({id:'geoLocMarker',position:position,map:map.getMap(),visible:true});......

Solution 2:

It's a lot simpler if you just use Ext.Map.getGeo() as follows:

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

As long as you have your map instantiated, it should get the current location if the browser client allows for you to obtain that.

HTH!

Solution 3:

I have also work for simillar app using sencha touch 2.3.1 Using Ext.util.Geolocation class for get current location and automatically update the currentPosition using the following code.

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);
    }
   }
 }
});  

The above code worked for me and i have already used in my app for getting currentLocation and moved the marker into currentPosition.

Post a Comment for "How Can I Get Marker On Current Location In Map In Sencha-touch2.0"