Google maps javascript api kullanarak bulunduğum konum bilgisini alan bir çalışmam var. Aşağıdaki kod güncel konumu buluyor ancak sürekli istek yapıyor. Kodumda belki diğer işlemlerde de hatalı söz dizimleri bulunabilir çünkü bu konuda çok acemiyim. Ben bu konum bulma isteğinin 30 saniye sonra sonlanmasını istiyorum. Yani 30 saniye boyunca konum arama işlemini yapsın, sonra bu javascript artık çalışmasın. Nasıl yapabilirim?

function initMap() {
    var id, target, options;
 
    if(navigator.geolocation){

        function success(pos) {

            var    latt = document.querySelector( '#currentLat' );
            var    lonn = document.querySelector( '#currentLon' );

            var myLatlng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
            var mapOptions = {
                zoom: 15,
                center: myLatlng
            }
            var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

            var marker = new google.maps.Marker({
            position: myLatlng,
            title:"Adresim"
            });


            marker.setMap(map);


            latt.value = pos.coords.latitude;
            lonn.value = pos.coords.longitude;
          
            var geocoder = new google.maps.Geocoder();
          
               if (geocoder) {

                  geocoder.geocode({ 'latLng': myLatlng}, function (results, status) {
                     if (status == google.maps.GeocoderStatus.OK) {
                        var    adress = document.querySelector( '#adresim' );
                        adress.value = results[0].formatted_address;
                     }
                     else {
                        var    adress = document.querySelector( '#adresim' );
                        adress.value = "Adres bilgisi alınıyor...";
                     }
                  });
               }  
               else {
                    var    adress = document.querySelector( '#adresim' );
                    adress.value = "Adres bilgisi alınıyor...";                            
               }
        }

        function error(err) {
            console.warn('ERROR(' + err.code + '): ' + err.message);
        }

        target = {
          latitude : 0,
          longitude: 0,
        };
      
        options = {
          enableHighAccuracy: true,
          timeout: 5000,
          maximumAge: 0,
        };

        navigator.geolocation.watchPosition(success, error, options);
    }                        
}