CINXE.COM
Tbilisi Map
<!doctype html> <html> <head> <meta charset="UTF-8" content="text/html;charset=utf-8" http-equiv="Content-Type"> <title>Tbilisi Map</title> <link href="resources/imgs/tbilisimap.ico" rel="shortcut icon"/> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-74063516-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-74063516-1'); gtag('config', 'G-SMMLCBBK51'); </script> <!-- underscore --> <script type="text/javascript" src= "libs/underscore/underscore-min.js"></script> <!-- jquery --> <script type="text/javascript" src= "libs/jquery/jquery-1.11.3.min.js"></script> <!-- angular --> <script type="text/javascript" src= "libs/angular/angular.min.js"></script> <script type="text/javascript" src= "libs/angular/angular-cookies.min.js"></script> <link rel="stylesheet" type="text/css" href="libs/angular/tree/css/tree-control.css?v1.05"> <link rel="stylesheet" type="text/css" href="libs/angular/tree/css/tree-control-attribute.css?v1.05"> <script type="text/javascript" src= "libs/angular/tree/angular-tree-control.js?v1.05"></script> <script type="text/javascript" src="libs/angular/fileupload/ng-file-upload-shim.min.js"></script> <!-- for no html5 browsers support --> <script type="text/javascript" src="libs/angular/fileupload/ng-file-upload.min.js"></script> <link rel="stylesheet" href="libs/angular/material/angular-material.min.css"> <script type="text/javascript" src= "libs/angular/material/angular-animate.min.js"></script> <script type="text/javascript" src= "libs/angular/material/angular-aria.min.js"></script> <script type="text/javascript" src= "libs/angular/material/angular-messages.min.js"></script> <script type="text/javascript" src= "libs/angular/material/angular-material.min.js"></script> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <!--<link rel="stylesheet" type="text/css" href="libs/angular/print/ngPrint.min.css"> <script type="text/javascript" src="libs/angular/print/ngPrint.min.js"></script>--> <!-- bootsrap --> <link rel="stylesheet" href = "libs/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href = "libs/bootstrap/css/bootstrap-theme.min.css"> <script type="text/javascript" src= "libs/bootstrap/js/bootstrap.min.js"></script> <script type="text/javascript" src= "libs/bootstrap/ui-bootstrap-tpls-0.13.3.min.js"></script> <!-- app styles --> <link rel="stylesheet" href = "resources/css/app.css?v1.09"> <link rel="stylesheet" href = "resources/css/map.css?v1.17"> <link rel="stylesheet" href="resources/css/map/popover.css?v1.10"/> <link rel="stylesheet" href = "resources/css/bootstrapfixes.css?v1.05"> <!-- Font Awesome --> <link rel="stylesheet" href="resources/css/font-awesome.min.css"/> <!-- ol2 --> <link rel="stylesheet" type="text/css" href="libs/ol/2_11/theme/default/style.css"> <script type="text/javascript" src="libs/ol/2_11/projection/proj4js-combined.js"></script> <script type="text/javascript" src="libs/ol/2_11/projection/utm.js"></script> <script type="text/javascript" src="libs/ol/2_11/projection/EPSG32638.js"></script> <script type="text/javascript" src="libs/ol/2_11/projection/EPSG900913.js"></script> <script type="text/javascript"> var EPSG32638Projection = new Proj4js.Proj('EPSG:32638'); var EPSG4326Projection = new Proj4js.Proj('EPSG:4326'); var EPSG900913Projection = new Proj4js.Proj('EPSG:900913'); </script> <script type="text/javascript" src="libs/ol/2_11/OpenLayers.js?v1.01"></script> <script type="text/javascript" src="libs/ol/2_11/LoadingPanel.js?v1.01"></script> <script type="text/javascript" src="app/tmap/AppUtils.js?v1.08"></script> <script type="text/javascript"> var params = getSearchParameters(); var orgId = parseInt(params.orgId); var objId = parseInt(params.objId); var lrId = parseInt(params.lrId); var hideTools = params.hideTools; var msdaToken = params.token; if (msdaToken) { msdaLogin(); } var orgData = {}; var app = angular.module('mapApp', ['ngMaterial', 'treeControl', 'ui.bootstrap', 'ngCookies'/*, 'ngPrint'*/]); var lowResolution = ($(window).height()>768)? false: true; // function showInfoImage(event){ // event = event || window.event // window.open(event.target.src,'სურათი', 'width=500, height=500, top=200, left=200, location=no'); // } </script> <!-- app scripts --> <script type="text/javascript" src="app/tmap/factories/layersService.js?v1.06"></script> <script type="text/javascript" src="app/tmap/filters/HtmlTrustFilter.js?v1.02"></script> <script type="text/javascript" src="app/tmap/factories/mapUtils.js?v1.15"></script> <script type="text/javascript" src="app/tmap/directives/enterClick.js?v1.06"></script> <script type="text/javascript" src="app/tmap/directives/outsideClick.js?v1.06"></script> <script type="text/javascript" src="app/tmap/controllers/appController.js?v1.10"></script> <script type="text/javascript" src="app/tmap/controllers/mapController.js?v1.61"></script> <script type="text/javascript" src="app/tmap/controllers/layersController.js?v1.22"></script> <script type="text/javascript" src="app/tmap/controllers/toolsController.js?v1.16"></script> <script type="text/javascript" src="app/tmap/controllers/galleryController.js?v1.1"></script> <script type="text/javascript" src="app/tmap/controllers/searchController.js?v1.16"></script> <script type="text/javascript" src="app/tmap/controllers/docsController.js?v1.24"></script> <script type="text/javascript" src="app/tmap/directives/draftSendDirective.js?v1.06"></script> <script type="text/javascript" src="app/tmap/controllers/featureMenuController.js?v1.07"></script> <script type="text/javascript" src="app/tmap/directives/featureMenuDirective.js?v1.06"></script> <script type="text/javascript" src="app/tmap/controllers/usersController.js?v1.24"></script> <script type="text/javascript" src="app/tmap/directives/authorizeFormDirective.js?v1.06"></script> <script type="text/javascript" src="app/tmap/filters/TranslationFilter.js?v1.02"></script> </head> <body ng-app="mapApp"> <span ng-controller="usersController" ng-init=" authenticationUrl = 'views/userauth/authenticationform.html?v1.02'; registrationUrl = 'views/userauth/registrationform.html?v1.03'; authform = {}; authFormVisible = false; registerform = {}; registerFormVisible = false; sideNavVisible = false; init(); "> <!-- <div style="background-color:rgba(255,255,255,0.6); position:fixed; width:100%; height:100%; top:0px; left:0px; z-index:100000;" ng-if="showMoveInfo"> <div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; background-color: white;"> <h1>გაცნობებთ, რომ 2022 წლის 30 ნოემბრიდან ქუთაისის ინტერაქტიული რუკა maps.kutaisi.gov.ge გადავა ახალ მისამართზე http://maps.municipal.gov.ge</h1> <hr> <button ng-click="hideInfo()">დახურვა</button> <hr> </div> </div>--> <span ng-controller="appController" ng-init="init(); galleryControllerObject = { imagesGalleryUrl: 'views/imagesgallery.html', layerInfoImages: [], layerInfoImagesGalleryVisible: false, index: 0 }; printMapObject = { printMapViewVisible: false, printMapViewUrl: 'views/printmap.html?v1.02', printMapViewImgSrc: '' }; header = 'views/header.html?v1.05'; footer = 'views/footer.html?v1.0'; sideNav = 'views/sideNav.html?v1.0'; modalboxUrl = 'views/modalbox.html?v1.3'; layersinfoUrl = 'views/layersinfonew.html?v1.23'; layersinfoleftUrl = 'views/layersinfoleft.html?v1.11'; searchUrl = 'views/search.html?v1.06'; searchResultUrl = 'views/searchresult.html?v1.15'; searchXYUrl = 'views/searchXY.html?v1.04'; usersUrl = 'views/users.html?v1.08'; gallerytoolsUrl = 'views/gallerytools.html'; mapzoomtoolkitUrl = 'views/zoomtoolkit.html?v1.03'; maptoolkitUrl = 'views/maptoolkit.html?v1.11'; measureViewUrl = 'views/measure.html?v1.02'; editUserLrObjectFormUrl = 'views/userlrviews/edit-user-lr-object-form.html?v1.02'; editUserLrPointStyleFormUrl = 'views/userlrviews/edit-user-lr-point-style-form.html?v1.01'; editUserLrLineStyleFormUrl = 'views/userlrviews/edit-user-lr-line-style-form.html?v1.01'; editUserLrPolygonStyleFormUrl = 'views/userlrviews/edit-user-lr-polygon-style-form.html?v1.01'; gisCommerceServicesPreviewUrl = 'views/userservices/gis-commerce-services-preview.html?v1.03'; footerPanelHeight = 0; leftPanelWidth = hideTools? 0: 300; galleryMode = false; footerPanelVisible = false; footerPanelView = 'gallery'; toolsPanelVisible = true; measuresToolkitVisible = false; drawingsToolkitVisible = false; gisCommerceData = {}; "> <span ng-controller="mapController as mapController" ng-init="mapImgs = []; viewportType = 'map'; layersinfoVisible = false; infoResult = {}; popupTop = 0; popupLeft = 0; measurePopupVisible = false; measurePopupTop = 0; measurePopupLeft = 0; measurePopupWidth = 0; measurePopupHeight = 0; mapConfig = {coordinatesProjection: 'EPSG:32638'};"> <span ng-controller="layersController" ng-init="layersPanelVisible = true; layersSwitchPanelVisible = false; maplayersUrl = 'views/maplayers.html?v1.13'; mapmenuUrl = 'views/mapmenu.html?v1.14'; expandedNodes = []; baseLayers = []; treedata = []; gisCommerceSatelliteLrs = []; init();"> <span ng-controller="toolsController" ng-init=" measureTitle = 'გაზომვა'; "> <span ng-controller="galleryController"> <div class="content" ng-include="galleryControllerObject.imagesGalleryUrl"> </div> </span> <!-- LOADING --> <div class="app-loading-wrapper" id="loading-wrapper"></div> <div ng-include="printMapObject.printMapViewUrl" id="print_map_image_div" class="print-map-view" style="max-height: 760px;" ng-show="printMapObject.printMapViewVisible"> </div> <!-- HEADER --> <div ng-include="header" ng-show="!hideTools"></div> <!-- MAP CONTAINER --> <div class="map-container" ng-style="hideTools && {'margin-top': 0, 'margin-bottom': '0'}"> <!-- map loading panel --> <div class="map-el-2 app-loading" ng-style="{'bottom': '{0}px'.format(footerPanelHeight+27), 'left': '{0}px'.format(leftPanelWidth+115)};" id="map-loading"></div> <!-- loading panel --> <div class="map-el-2 app-loading" ng-style="{'bottom': '{0}px'.format(footerPanelHeight+27), 'left': '{0}px'.format(leftPanelWidth+115)};" id="loading"></div> <!-- map div --> <div class="map-viewport" id="olmap" ng-show="viewportType === 'map'"> </div> <!-- SIDENAV --> <div ng-include="sideNav" ng-if="sideNavVisible"></div> <!-- gallery div --> <div class="gallery-viewport" ng-style="{'padding-bottom': '{0}px'.format(footerPanelHeight)}" ng-if="viewportType === 'gallery'"> <img style="height: 100%;box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);" ng-src="{{galleryImageSrc}}" ng-if="galleryType==='image'"> <object style="height: 100%; width: 100%;" ng-if="galleryType==='flash'" type="application/x-shockwave-flash" name="pano" align="middle" data="{{gallerySwfSrc}}" > <param name="quality" value="high"> <param name="bgcolor" value="#ffffff"> <param name="allowscriptaccess" value="sameDomain"> <param name="allowfullscreen" value="true"> <param name="base" value="."> <param name="wmode" value="transparent"> </object> <iframe style="height: 100%; width: 100%; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);" ng-if="galleryType==='iframe'" ng-src="{{galleryIframeSrc}}"></iframe> </div> <!-- gallery tools --> <div class="map-el gallery-tools" ng-include="gallerytoolsUrl" ng-style="{'bottom': '{0}px'.format(footerPanelHeight+85)}" ng-show="viewportType === 'gallery'"></div> <!-- search panel --> <span ng-controller="searchController" outside-click="hideSearchResult();" ng-init="init()"> <div class="map-el-1 map-search" ng-include="searchUrl" ng-show="!hideTools && viewportType === 'map'" ng-style="{left: '{0}px'.format(leftPanelWidth+30)}"></div> <div class="map-el-1 map-search-xy" ng-include="searchXYUrl" ng-show="viewportType === 'map' && searchXYVisible" ng-style="{left: '{0}px'.format(leftPanelWidth+30)}"></div> <div id="searchResultDivId" class="map-el-1 map-search-result" ng-include="searchResultUrl" ng-show="viewportType === 'map' && searchResultVisible" ng-style="{left: '{0}px'.format(leftPanelWidth+30), top: '{0}px'.format(searchXYVisible?84: 57)}"></div> </span> <!-- layers panel --> <div ng-include="mapmenuUrl" class="map-el-1 map-layers" ng-style="{width: '{0}px'.format(leftPanelWidth)}" ng-show="!hideTools && layersPanelVisible && viewportType === 'map'"></div> <!-- users panel --> <!--<div class="map-users" ng-show="viewportType === 'map' && orgData.docServicesEnabled===1" ng-include="usersUrl"></div>--> <!-- show/hide tools panel --> <div class="map-el-1 map-toolkit-switch" ng-click="showHideToolkit();" ng-show="!hideTools && viewportType === 'map'" ng-style="{'right': lowResolution? '41px': '21px'}" tooltip-placement="left" tooltip="ინსტრუმენტების პანელის ჩართვა/გამორთვა" tooltip-popup-delay='1000' tooltip-animation='false'> <a href="javascript:void(0);" data-toggle="actions"><i class="fa fa-th"></i></a> </div> <!-- tools panel --> <div class="map-el-1 map-toolkit" ng-show="!hideTools && viewportType === 'map' && toolsPanelVisible" ng-style="{'width': lowResolution? '84px': ''}" ng-include="maptoolkitUrl"></div> <!-- location panel --> <div class="map-el-1 map-location" ng-style="{'bottom': '{0}px'.format(footerPanelHeight?footerPanelHeight+120: 137)}" ng-show="!hideTools && viewportType === 'map'" > <div class="actions"> <ul class="nav"> <li ng-click="location()" tooltip-placement="left" tooltip="{{mapToolkitLocationTooltip | translation:3}}" tooltip-popup-delay='1000'> <a href="javascript:void(0);" style="border-radius: 3px 3px 3px 3px;"> <i class="fa fa-location-arrow"></i> </a> </li> </ul> </div> </div> <!-- zoom panel --> <div class="map-el-1 map-zoom-toolkit" ng-include="mapzoomtoolkitUrl" ng-style="{'bottom': '{0}px'.format(footerPanelHeight+15)}"></div> <!-- logo panel --> <!-- <div class="map-el-2 app-logo" ng-show="viewportType === 'map'" ng-style="{ 'bottom': '{0}px'.format(footerPanelHeight+23), 'left': 'calc(50% - 145px + {0}px'.format( (leftPanelWidth/2+2) ) };"></div> --> <!-- <img src="/resources/imgs/logo_map_ge.svg" class='map-el-2' ng-if="lang=='ge'" ng-show="viewportType === 'map'" ng-style="{ 'bottom': '{0}px'.format(footerPanelHeight+28), 'left': 'calc(50% - 100px + {0}px'.format( (leftPanelWidth/2+2) ), 'width': '200px', 'height': '36px' };"/> <img src="/resources/imgs/logo_map.svg" class='map-el-2' ng-if="lang=='en'" ng-show="viewportType === 'map'" ng-style="{ 'bottom': '{0}px'.format(footerPanelHeight+28), 'left': 'calc(50% - 100px + {0}px'.format( (leftPanelWidth/2+2) ), 'width': '200px', 'height': '36px' };"/> --> <!-- about panel --> <div class="map-el-2 app-about" ng-show="viewportType === 'map'" ng-style="{ 'text-align': 'center', 'bottom': '{0}px'.format(footerPanelHeight+2), 'left': 'calc(50% - 200px + {0}px'.format( (leftPanelWidth/2+2) ) };"> <!-- {{mapStateText | translation:3}} --> </div> <!-- base layers switch panel --> <div class="map-el map-base-layers-switch" ng-show="baseLayersSwitchPanelVisible && viewportType === 'map'" ng-style="{'bottom': '{0}px'.format(footerPanelHeight+135), 'left': '{0}px'.format(leftPanelWidth+15)};" > <img ng-repeat="baseLayer in baseLayers track by baseLayer.lrId" class="map-base-layers-img" ng-src="{{baseLayer.baseLayerImage}}" ng-if="!baseLayer.checked" ng-click="changeBaseLayer(baseLayer)" /> </div> <!-- base layers panel --> <div class="map-el-1 map-base-layers" ng-show="viewportType === 'map' && !hideTools" ng-click="showBaseLayersSwitchPanel()" ng-style="{'bottom': '{0}px'.format(footerPanelHeight+33), 'left': '{0}px'.format(leftPanelWidth+15)}"> <img class="map-base-layers-choosed-img" ng-src="{{baseLayerImage}}"/> </div> <!-- footer header panel --> <div ng-show="!hideTools && viewportType === 'map'" ng-style="{ 'bottom': '{0}px'.format(footerPanelHeight+15) }" style="bottom: 15px !important; right: 65px !important;" class="map-el map-footer-header"> <div style="float: right"> {{mapScaleLabel | translation:3}}= <span id="map-scale-div" ></span> </div> <div style="float: right; margin-right: 15px;"> <select ng-model="mapConfig.coordinatesProjection" ng-change="changeCoordinatesProjection();" class="coordinates-projection-selector"> <option value="EPSG:32638">{{epsg32638 | translation:3}}</option> <option value="EPSG:4326">{{epsg4326 | translation:3}}</option> <option value="EPSG:900913">EPSG:900913</option> </select> </div> <div id="mouse-position-div" style="float: right"></div> </div> <!-- footer gallery panel --> <div class="map-el map-footer" ng-style="{ 'height': '{0}px'.format(footerPanelHeight), 'left': '{0}px'.format( (viewportType === 'map')? (leftPanelWidth+2): 0), 'padding-right': '{0}px'.format( (viewportType === 'map')? (leftPanelWidth+65): 65 ) }" ng-show="!hideTools" ng-if="footerPanelVisible && footerPanelView==='gallery'"> <div class="gallery-objects"> <a ng-repeat="mapImg in mapImgs" > <img ng-click="showImagesGallery($index)" ng-mouseenter="showImageObjectOnMap(mapImg)" ng-mouseleave="hideImageObjectOnMap(mapImg)" ng-src="{{(mapImg.objType===3 || mapImg.objType===5)? 'resources/imgs/swf360.png': 'LayersController/downloadPicture.do?fileId={0}'.format(mapImg.objVal)}}"/> </a> </div> <div class="bottom-menu-right-header" ng-style="{ 'right': '{0}px'.format( (viewportType === 'map')? (leftPanelWidth): 0 ) }"> <a href="#" style="width:30px;text-align: center; color: white;" ng-click="hideFooterPanel()"> <i class="fa fa-angle-down fa-2x"></i> </a> <br/> <br/> <a href="#" ng-show="authData.isAuthorized" style="width:30px;text-align: center; color: white;" ng-click="drawGalleryObject()" tooltip-placement="left" tooltip="გალერეის ობიექტის დამატება" tooltip-popup-delay='1000' tooltip-class='tooltip-left'> <i class="fa fa-plus-square-o fa-2x"></i> </a> </div> </div> <!-- footer gis commerce satellite panel --> <div class="map-el map-footer" ng-style="{ 'height': '{0}px'.format(footerPanelHeight), 'left': '{0}px'.format( (viewportType === 'map')? (leftPanelWidth+2): 0), 'padding-right': '{0}px'.format( (viewportType === 'map')? (leftPanelWidth+65): 65 ) }" ng-if="footerPanelVisible && footerPanelView==='gisCommerceSatelliteView'" ng-include="gisCommerceServicesPreviewUrl"> </div> </div> <!-- FOOTER --> <div ng-include="footer" ng-show="!hideTools"></div> <!-- authentication --> <div ng-show="authFormVisible" ng-click="hideAuthForm($event);" class="auth-div" ng-include="authenticationUrl"></div> <!-- registration --> <div ng-show="registerFormVisible" ng-click="hideRegisterForm($event);" class="auth-div" ng-include="registrationUrl"></div> <!-- modal box --> <div ng-include="modalboxUrl"></div> <!-- popover --> <div class="popover1 map-el-1" ng-style="{'top':'{0}px'.format(popupTop),'left': '{0}px'.format( popupLeft )}" ng-if="!hideTools && layersinfoVisible && viewportType === 'map' && orgData.infoType === 1" ng-include="layersinfoUrl"> </div> <!-- popover --> <div class="popover2 map-el-1" ng-show="layersinfoVisible && viewportType === 'map' && orgData.infoType === 2" ng-include="layersinfoleftUrl"> </div> <!-- measure popup --> <div ng-include="measureViewUrl"></div> </span> </span> </span> </span> </span> </body> </html>