// 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 ); 21 Outdoor Date Ideas for Spring and Summer DatesHelloGiggles – 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

After

way

a lot of time indoors recently, we are going to seize some
opportunity to get outside
. Along with
warmer weather coming
, we’re looking forward to enjoyable
outdoor dates
this spring season and summer time. If you should be sick and tired of
Netflix and chilling
(aren’t we-all?) you will accept this outdoor date a few ideas ASAP.

To give you plus boo an air of oxygen, we rounded upwards
outdoor big date some ideas
for each sorts of few, from points that’ll get your blood putting, like climbing and biking, to comfortable tasks, like picnics, to get competitive with mini golf or golf. Whether you are looking to
spice things up along with your S.O
. or you desire a great first big date concept for
jumping back into the dating online game post-pandemic
, consider our very own top outside day some ideas here.

Outdoor date tactics:

1. Walk around a farmer’s marketplace.

Farmer’s marketplaces tend to be specially perfect for
at the beginning of the online game times
, because the atmosphere offers you a lot to talk about, like in the event the time prefers peaches or apples. Plus, possible stop for a snack or browse art suppliers, and possibly purchase a memento to mark the affair.

2. embark on a picnic.

Picnics are always passionate, and personalize these to your private preferences. Show your consideration by loading your own S.O.’s preferred treats, and then make it boozy with a container of drink or 6-pack. Bring a speaker to play your favorite songs or simply immerse within the noise of nature with each other.

Residence Creativity Wicker Picnic Basket for 2

Shop it

Amazon

3. Plan a coastline time.

If you are fortunate enough to live on near a coastline, use the mud and water by loading a case of basics and hitting the coastline for the day. You can’t fail with putting your own toes for the sand or getting flirty by splashing each other with salt water.

Dejaroo Mesh Beach Bag

Shop it

Amazon

4. continue a hike.

Hikes
are loaded with great opinions, they ensure you get your bloodstream pumping, and you’ll feel accomplished later. Plus, bring a set of binoculars so you’re able to look out for pets and present your birdwatching abilities. However, cannot decide for this if you are
going on an initial go out
, because circumstances could easily get sweaty (unless you should warm up situations up).

Occer 12×25 Compact Binoculars with Sharp Low Light Vision

$150

Shop it

Amazon

5. go after a bicycle journey.

Biking is an additional fantastic active time alternative, and lots of metropolitan areas provide general public bicycles you can easily rent if you don’t have your. Ride alongside one another leisurely or select a fun destination in your town to pedal toward.

6. head to a drive-in motion picture.

Drive-in movie theaters tend to be as old school passionate as you’re able to get. If you’re unable to choose one near you, create your own by setting a TV or projector in your backyard and cuddle upwards into the auto to look at the movie of your choosing. Extra: you are able to down around need without various other moviegoers to see.

7. Take a songs stroll.

For the music enthusiasts nowadays, generate a playlist you believe your boo will like, buy this splitter for old-school earphones, and walk around while playing your preferred songs. Or, take a hint from
film

Start Again

, and turn off playing tracks per some other, showing-off both your own music tastes. Keep hands, hear the words (pick some romantic people), and feel your own hookup rise.

3 in 1 double Headphone Jack Adapter

Shop it

Amazon

8. check out the zoo.

Zoos aren’t just for kids; channel your inner youthfulness and walk around neighborhood zoo with a night out together. Pointing from various creatures offers lots to fairly share.

9. Play mini tennis.

Small tennis is a severely underrated big date. If you like exposing the aggressive advantage, seize the clubs and smack the mini greens for most flirty competition.

10. Play tennis.

Tennis is another great online game to tackle with a romantic date, albeit it will require a little more control than small tennis. Put on your playing tennis dress and hit the pavement together with your boo. Things will probably get sweaty, that you’ll see as aggravating or appealing.

11. frolic in the water.

Find nearby pond, sea, or cycling pool—and cook feeling hot and bothered. Cycling is all about as personal of an outside time idea as you possibly can get: you are dressed in bathing suits and getting wet—need we say a lot more?

12. Dine on a cafe or restaurant patio.

The pandemic has received us accustomed outdoor dining, therefore we’re engrossed (when it’s not frigid temps, this is certainly.) lay on a cute restaurant patio with a date and revel in meals collectively.

13. take to a seasonal task.

Embrace whatever the period can offer: apple or pumpkin selecting in fall, ice-skating from inside the winter months, roof hopping inside springtime, and ship times in the summertime.

14. Go stargazing.

If you’re in an urban area with a good look at the movie stars (aka, perhaps not nyc), use the dreamy relationship that is included with a black sky gleaming with movie stars. Push a blanket to a clear outdoor space, rest on the backs, and permit the dialogue receive strong when you immerse from inside the view.

15. Grill out.

Should you decide or your boo has actually a backyard space with a barbecue grill at home, set the world for a cooking evening in the open air. Allow it to be enchanting by light candle lights and savor whipping-up a yummy food together.

16. go to an outside sporting occasion.

Baseball video game, any individual? Throw on your favorite jean short pants and shoes and obtain ready to cheer in your favorite group with a hot dog and beer at hand.

17. Hit upwards an enjoyment park.

Get the belly soaring by driving rollercoasters along with your go out. The adrenaline will bring following the amusement park, knowing whatever you mean.

18. Visit a winery.

If you love studying drink (and obtaining a hype on), see a local winery. Drench during the gorgeous views from the vineyard to get a little tipsy together with your boo.

19. see a brewery.

In case you are a lot more of an alcohol drinker, decide for a brewery with a patio patio to sip some regional brews and perform games on.

20. see the sunset.

Is there any other thing more passionate than watching the sunlight go lower? Golden hour is the most intimate time of day, and your time will feel full of options when the sunshine goes down.

21. Buy frozen dessert.

If you’re searching for a low-key, playful time, decide for catching frozen dessert cones. It really is simple, nice, so there’s some thing close about licking frozen dessert cones together.

https://femalelookingforcouple.com/how-to-have-a-good-threesome.html

Design and Develop by Ovatheme