package Karte; # # SPDX-License-Identifier: AGPL-3.0-or-later # Copyright (c) Rainer Gümpelein, TeilRad GmbH # use strict; use warnings; use CGI ':standard'; use Lib::Config; use Mod::DBtank; use Mod::APIfunc; sub new { my $class = shift; my $self = {}; bless($self,$class); return $self; } #Template sub tpl(){ my $node_meta = shift; my $users_dms = shift || ""; my $mode = shift || ""; my $varenv = shift; my $users_sharee = shift || { c_id => 0 }; my $return = shift || ""; my $q = new CGI; my $dbt = new DBtank; my $apif = new APIfunc; my $api_file = "/var/www/copri4/shareeconf/apikeys.cfg"; my $aconf = Config::General->new($api_file); my %apikeyconf = $aconf->getall; my $api_return = { authcookie => '' }; my $coo = $q->cookie(-name=>'domcookie') || $R::sessionid; ($api_return,$users_sharee) = $apif->auth_verify($q,$coo,""); my $initMap = $dbt->{website}->{$varenv->{syshost}}->{initMap}; my $map_zoom = $dbt->{website}->{$varenv->{syshost}}->{map_zoom} || "10"; my $project = "all"; my $uri_request = $dbt->{primary}->{sharee_primary}->{primaryDMS}; if($dbt->{website}->{$varenv->{syshost}}->{merchant_id}){ $api_return->{authcookie} = $dbt->{website}->{$varenv->{syshost}}->{merchant_id} if(!$api_return->{authcookie}); $project = $dbt->{website}->{$varenv->{syshost}}->{project} if($dbt->{website}->{$varenv->{syshost}}->{project}); $uri_request = $dbt->{website}->{$varenv->{syshost}}->{operatorWeb}; }elsif($dbt->{operator}->{$varenv->{dbname}}->{merchant_id}){ $api_return->{authcookie} = $dbt->{operator}->{$varenv->{dbname}}->{merchant_id} if(!$api_return->{authcookie}); $initMap = $dbt->{operator}->{$varenv->{dbname}}->{initMap} if($dbt->{operator}->{$varenv->{dbname}}->{initMap}); $map_zoom = $dbt->{operator}->{$varenv->{dbname}}->{map_zoom} if($dbt->{operator}->{$varenv->{dbname}}->{map_zoom}); $project = $dbt->{operator}->{$varenv->{dbname}}->{project} if($dbt->{operator}->{$varenv->{dbname}}->{project}); $uri_request = $dbt->{operator}->{$varenv->{dbname}}->{operatorDMS}; }elsif($dbt->{primary}->{$varenv->{dbname}}->{merchant_id}){ $api_return->{authcookie} = $dbt->{primary}->{$varenv->{dbname}}->{merchant_id} if(!$api_return->{authcookie}); $initMap = $dbt->{primary}->{$varenv->{dbname}}->{initMap} if($dbt->{primary}->{$varenv->{dbname}}->{initMap}); $uri_request = $dbt->{primary}->{$varenv->{dbname}}->{primaryDMS}; } my $icon_green = "Open_Green.png"; my $icon_red = "Open_Red.png"; my $icon_blue = "Open_Blue.png"; my $mapheight = "600px;"; if($project eq "Bayern"){ $icon_green = "LastenradBay_Standortpfeil_gruen_03a.png"; $icon_red = "LastenradBay_Standortpfeil_rot_03a.png"; $icon_blue = "LastenradBay_Standortpfeil_blau_03a.png"; $mapheight = "800px;"; } $users_sharee->{c_id} = "0" if(!$users_sharee->{c_id}); $initMap =~ s/\s//g; my ($lat,$lng) = split(/,/,$initMap); my $kmlfile = ""; my $filesize = 0; my $preserve_view = "false"; require "Mod/KMLout.pm"; $kmlfile = Mod::KMLout::kmlGenerator($api_return,$varenv,$users_sharee); my $filesize = -s "$varenv->{metahost}/xml/$kmlfile"; # #used by empty station card like without public stations #setting to true to keeps lat,lng and zoom $preserve_view = "true" if($filesize < 200); print "
\n"; print "
\n"; print< function initMap() { var map = new google.maps.Map(document.getElementById('map'), { scrollwheel: false, draggable: !("ontouchend" in document), center: {lat: $lat, lng: $lng}, zoom: $map_zoom }); var ctaLayer = new google.maps.KmlLayer({ position: map.getCenter(), preserveViewport: $preserve_view, //url: '$uri_request/KMLout?authcookie=$api_return->{authcookie}&dynamo=' + (new Date()).getTime(), url: '$varenv->{metahost}/xml/$kmlfile', map: map }); console.log(ctaLayer); }; EOF ; print "
\n"; #print $q->div({-class=>"content2_legende", -style=>'font-weight:bold;'}, "• Ist ein Lastenrad an einer Mietradstation verfügbar?"),"\n"; print $q->div({-class=>"content2_legende"}, $q->img({-style=>'height:30px;', -src=>"$varenv->{metahost}/img/$icon_green"}), "Lastenrad verfügbar"),"\n"; print $q->div({-class=>"content2_legende"}, $q->img({-style=>'height:30px;', -src=>"$varenv->{metahost}/img/$icon_red"}), "Lastenrad nicht verfügbar"),"\n"; #print $q->div({-class=>"content2_legende"}, " "),"\n"; print "$initMap|$varenv->{dbname}|$api_return->{authcookie}|$users_sharee->{c_id}|$kmlfile" if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id}); #print "$varenv->{syshost}/$varenv->{dbname} --> $dbt->{operator}->{$varenv->{dbname}}->{initMap}"; #if($R::ask_radID && $R::ask_radID =~ /^\d+$/){ # require "Tpl/ModalboxDialog.pm"; # &ModalboxDialog::mobox2($tpl_name,$tpl_id,$parent_id,$main_id,$u_id,$u_group,$lang,$users_sharee,$bg_color1,$bg_color2,$R::ask_radID); # } # } 1;