// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Aviator Platformasının Tam Şəkili – Aviator Platformasının Əsasları – Niyə Bu Qədər Populyardır – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Aviator Platformasının Tam Şəkili – Aviator Platformasının Əsasları – Niyə Bu Qədər Populyardır

Aviator Platformasının Tam Şəkili – Necə İşləyir və Rəqiblərdən Nəyi Fərqləndirir

Aviator, Azərbaycanda onlayn oyun sahəsində özünəməxsus bir yer tutan, sadə ancaq asılılıq yaradan bir platformadır. Bu, təkcə bir oyun deyil, tam bir oyun mühitidir. Platformanın ümumi baxışı onun necə işlədiyini, istifadəçilərə nə təklif etdiyini və digər oxşar xidmətlərlə müqayisədə hansı güclü və zəif tərəfləri olduğunu anlamaq üçün vacibdir. Bu baxış, platformanın arxasında duran mexanikanı, onun Azərbaycan istifadəçisi üçün uyğunlaşdırılmasını və sizə tam şəkil vermək üçün lazım olan bütün konteksti əhatə edir. Ətraflı məlumat üçün https://aviator-azerbaycan.net/ ünvanına baxa bilərsiniz.

Aviator Platformasının Əsasları – Niyə Bu Qədər Populyardır

Aviatorın əsasını, təyyarənin ekranda uçduqca artan və istənilən anda çökə bilən bir əmsalı izləmək prinsipi təşkil edir. Bu, görünüşdə sadə bir konsepsiyadır, lakin onun populyarlığının arxasında psixoloji və texniki amillər dayanır. Platforma, digər mürəkkəb kazino oyunları ilə müqayisədə dərhal başa düşülən bir qayda ilə işləyir. Bu, yeni başlayanlar üçün əsas cəlbedicilikdir. Lakin, rəqiblərdən fərqli olaraq, Aviator təkcə bir oyun deyil, sosial elementlər, real vaxt statistikası və şəffaf nəticələr təqdim edən tamhüquqlu bir ekosistem kimi çıxış edir.

Aviator

Aviator-da Qeydiyyat və Daxil Olma Prosesi – Addım-addım

Platformaya giriş, onun istifadəçi dostu olub-olmadığının ilk göstəricisidir. Aviator, burada rəqiblərindən fərqli olaraq, minimal məlumat tələb edən sürətli bir qeydiyyat prosesi təklif edir. Bu, istifadəçinin vaxtını qənaət etdirir və dərhal oyuna başlamağa imkan verir. Ancaq, bu sadəliyin arxasında təhlükəsizlik üçün nəzərdə tutulmuş əsaslı bir arxa plan dayanır. Qeydiyyatdan sonra daxil olma hər dəfə asandır, lakin bəzi rəqiblər burada bir addım irəli gedərək biometrik daxil olma kimi variantlar təqdim edir.

  1. Platformanın əsas səhifəsində “Qeydiyyat” düyməsini tapın.
  2. Mobil nömrənizi və ya elektron poçt ünvanınızı daxil edin.
  3. Gizli bir şifrə yaradın və onu təsdiqləyin.
  4. Qaydalar və şərtlərlə razı olduğunuzu göstərin.
  5. E-poçtunuzda və ya SMS-də gələn təsdiq kodunu daxil edin.
  6. Hesabınız aktivləşdikdən sonra, şəxsi kabinetinizə daxil ola bilərsiniz.
  7. Gələcək daxil olmalar üçün sadəcə istifadəçi məlumatlarınızı daxil edin.
  8. Şifrənizi unutmaq ehtimalı üçün bərpa seçimlərini yoxlayın.
  9. İlk dəfə daxil olduqdan sonra profil məlumatlarınızı tamamlamağı tövsiyə edin.

Aviator Mobil Tətbiqi – Platformanı Əlinizdə Daşımaq

Aviator mobil tətbiqi, onun əsas üstünlüklərindən biridir. Tətbiq, brauzer versiyasının bütün funksiyalarını optimallaşdırılmış formada təqdim edir. Bu, istifadəçiyə hər yerdə və hər zaman platformaya çıxış imkanı verir. Rəqiblərin çoxu mobil uyğun veb-sayt təklif etsə də, Aviator xüsusi bir tətbiq ilə daha sürətli işləmə, bildirişlər və daha yaxşı istifadəçi interfeysi təklif edir. Ancaq, tətbiqin yüklənməsi üçün əlavə bir addım tələb olunur ki, bu da bəzi istifadəçilər üçün maneə ola bilər.

  • Tətbiq App Store və ya Google Play-də pulsuz olaraq mövcuddur.
  • Yükləmə və quraşdırma bir neçə dəqiqə çəkir.
  • Brauzer versiyası ilə müqayisədə daha sürətli yüklənmə müşahidə olunur.
  • Tətbiq daxilində bütün əməliyyatlar – depozit, çıxarış, bonuslar – edilə bilər.
  • Oyun prosesi mobil cihazın ekranına mükəmməl uyğunlaşdırılıb.
  • Tətbiq, batareyanın səmərəli istifadəsi üçün optimallaşdırılıb.
  • Bildirişlər vasitəsilə xüsusi təkliflər və oyun yenilikləri barədə məlumatlandırılırsınız.
  • Bəzi köhnə cihaz modellərində uyğunluq problemləri yarana bilər.
  • Tətbiq müntəzəm olaraq yenilənir və təkmilləşdirilir.

Aviator Bonusları və Kampaniyaları – Əsl Dəyər Nədir

Bonuslar, hər hansı bir platformanın istifadəçi cəlb etmə strategiyasının ayrılmaz hissəsidir. Aviator, ilk depozit bonusları, pulsuz fırlanmalar və cashback kimi klassik təkliflər təqdim edir. Platformanın üstünlüyü, bu bonusların şərtlərinin nisbətən aydın olması və çox vaxt real pul oyununa çevrilə bilməsidir. Lakin, bəzi rəqiblər daha yüksək faizli və ya daha tez-tez dəyişən kampaniyalar təklif edə bilər. Aviatorun bonus sistemi daha sabit və proqnozlaşdırıla bilən bir arxa plana malikdir ki, bu da uzunmüddətli istifadəçilər üçün daha faydalı ola bilər.

Aviator

Depozit və Pul Çıxarılması – Aviator-da Maliyyə Axını

Platformada pul köçürmələri, onun etibarlılığının birbaşa göstəricisidir. Aviator, Azərbaycan istifadəçiləri üçün bir sıra lokal ödəniş üsullarını dəstəkləyir. Bu, manatla hesab yaratmaq və əməliyyatlar aparmaq imkanı deməkdir. Depozitlər adətən dərhal hesaba daxil olur ki, bu da rəqiblərlə müqayisədə böyük bir üstünlükdür. Pul çıxarılması prosesi isə bir qədər uzana bilər, çünki təhlükəsizlik yoxlamalarından keçir. Bu, mənfi kimi görünə bilər, lakin istifadəçi vəsaitlərinin təhlükəsizliyi baxımından vacib bir arxa plan prosesidir.

Ödəniş Metodu Depozit Müddəti Çıxarış Müddəti Komissiya
Bank Kartı (Visa/Mastercard) Dərhal 1-3 iş günü Yoxdur
Elektron Pul Kisələri (Bir sıra lokal provayderlər) Dərhal 24 saat ərzində Provayderdən asılı
Mobil Operatorlar vasitəsilə Bir neçə dəqiqə Mövcud deyil Kiçik faiz ola bilər
Bank Köçürməsi 1 iş günü 2-5 iş günü Bank komissiyası tətbiq oluna bilər

Aviator-da Təhlükəsizlik və KYC – Sizin Məlumatlarınız Necə Qorunur

Təhlükəsizlik, onlayn platformaların əsas dayaq nöqtəsidir. Aviator, məlumatları şifrələmək üçün son standart SSL texnologiyasından istifadə edir. KYC (Müştərinin Kimliyini Yoxlama) prosesi platformanın zəif tərəflərindən biri kimi görünə bilər, çünki bəzi istifadəçilər şəxsi sənədlərin təqdim edilməsini narahat edici hesab edir. Lakin, bu prosesin arxasında qanuni tələblər və istifadəçiləri qeyri-qanuni fəaliyyətlərdən qorumaq məqsədi dayanır. Platforma, bu məlumatları maksimum təhlükəsizliklə saxlayır. Rəqiblərlə müqayisədə Aviator-un KYC prosesi orta səviyyədədir – nə çox sərt, nə də çox boş.

Design and Develop by Ovatheme