//map_data_holder postane holder id-jev potrebnih za prikaz markerjev var map_data_holder = {}; //id spremenljivke, ki bo prikazana v pojavnem oknu var spremenljivka_box = 0; //Procedura, ki preveri ce je gogle maps API ze includan function googleMapsAPIProcedura(after){ //preveri, ce je google API ze includan (ce se je vedno nanovo icludal, je prislo do errorjev) if((typeof google === 'object' && typeof google.maps === 'object')){ //API je naloadan, inicializiraj mapo after(); } else{ mapsAPIseNi(after); } } //kreiraj colorbox (popup, kjer bo zemljevid) $(document).ready(function () { $(".fMap").colorbox({ scrolling:false, width:"80%", height:"80%", title: "", html:'
', onComplete:function(){ if(!$(".fMap").hasClass("rawData")){ $('#colorbox').addClass("divPopUp"); getMapDataAjax(); } else{ googleMapsAPIProcedura(initializeMapGeneralForIPs); } } }); }); /** * ob kliku na link prenesi podatke o zeljeni spremenljivki * @param {type} sprid - int - id spremenljivke * @param {type} usrid - int - id userja * @param {type} loopid - int - id loopa * @param {type} ankid - int - id ankete * @param {type} ajaxCall - string - call to ajax function mapData or mapDataAll * @returns {undefined} */ function passMapData(sprid, usrid, loopid, ankid, ajaxCall){ if(!ajaxCall) ajaxCall = "mapData"; //map_data_holder postane holder id-jev potrebnih za prikaz markerjev kasneje map_data_holder = {spr_id: sprid, usr_id: usrid, loop_id: loopid, ank_id: ankid, ajaxCall: ajaxCall}; spremenljivka_box = sprid; } /** * Passing raw json data for google maps (originaly used for mod IP location) * @param {type} rawData - json - [{"Modena":{"cnt":2,"lat":44.666698455810546875,"lng":10.9167003631591796875}}] * @returns {undefined} */ function passMapDataRaw(rawData){ //map_data_holder postane holder id-jev potrebnih za prikaz markerjev kasneje map_data_holder = rawData; spremenljivka_box = 'IPloc'; } //inicializiraj mapo / nastavi mapo v colorboxu function initializeMapGeneral() { var mapOptions = { mapTypeId: google.maps.MapTypeId.ROADMAP }; //pri vpogledu podatkov je viewMode vedno true viewMode = true; //infowindow iz API-ja, za prikaz markerja in informacije o markerju infowindow = new google.maps.InfoWindow(); //deklaracija zemljevida var mapdiv = document.getElementById("map_canvas_all"); var map = new google.maps.Map(mapdiv, mapOptions); //to se kasneje uporabi za pridobitev mape z id-em spremenljivke mapdiv.gMap = map; //deklaracija mej/okvira prikaza na zemljevidu bounds[spremenljivka_box] = new google.maps.LatLngBounds(); //to store combined bounds of all polylines or polygons bounds['all'] = new google.maps.LatLngBounds(); //get input type (marker, polyline, polygon) var input_type = map_data_holder.input_type; delete map_data_holder.input_type; //get subtype (mylocation-1, multilocation-2, chooselocation-3) var enota = map_data_holder.enota; delete map_data_holder.enota; //podvprasanja v infowindow podvprasanje[spremenljivka_box] = map_data_holder.podvprasanje; delete map_data_holder.podvprasanje; //naslov podvprasanja v infowindow podvprasanje_naslov[spremenljivka_box] = map_data_holder.podvprasanje_naslov; delete map_data_holder.podvprasanje_naslov; max_mark[spremenljivka_box] = map_data_holder.length; ml_sprem[spremenljivka_box] = false; st_markerjev[spremenljivka_box] = 0; allMarkers[spremenljivka_box] = []; if(enota == 3){ map_data_fill(spremenljivka_box, map_data_holder.data, enota); map_data_fill_info_shapes(spremenljivka_box, map_data_holder.info_shapes); } else{ if(input_type == 'marker'){ //nafilaj mapo z markerji map_data_fill(spremenljivka_box, map_data_holder); //var soda = spremenljivka_box % 2 == 0; //if(soda){ // Add a marker clusterer to manage the markers. var markerCluster = new MarkerClusterer(map, allMarkers[spremenljivka_box], {imagePath: srv_site_url + 'admin/survey/img_0/markerclusterer/m', maxZoom: 15}); //} } else if(input_type == 'polyline') map_data_fill_shape(spremenljivka_box, map_data_holder.data, input_type); else if(input_type == 'polygon') map_data_fill_shape(spremenljivka_box, map_data_holder.data, input_type); } //hide loader $("#cboxLoadingOverlay").hide(); }; //inicializiraj mapo / nastavi mapo v colorboxu za mod IP location function initializeMapGeneralForIPs() { var mapOptions = { mapTypeId: google.maps.MapTypeId.ROADMAP, streetViewControl: false }; //infowindow iz API-ja, za prikaz markerja in informacije o markerju infowindow = new google.maps.InfoWindow(); //deklaracija zemljevida var mapdiv = document.getElementById("map_canvas_all"); if(!mapdiv) mapdiv = document.getElementById("map_ip"); var map = new google.maps.Map(mapdiv, mapOptions); //to se kasneje uporabi za pridobitev mape z id-em spremenljivke mapdiv.gMap = map; //deklaracija mej/okvira prikaza na zemljevidu bounds[spremenljivka_box] = new google.maps.LatLngBounds(); max_mark[spremenljivka_box] = map_data_holder.length; ml_sprem[spremenljivka_box] = false; st_markerjev[spremenljivka_box] = 0; allMarkers[spremenljivka_box] = []; //close infowindow on zoom because info can change due to clustering google.maps.event.addListener(map, 'zoom_changed', function() { infowindow.close(); }); Object.keys(map_data_holder).forEach(function(key) { //pomnozi markerje glede na frekvence for(var i=0; i