????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.216.120 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/labs.astacus.se/geo/js/ |
Upload File : |
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
var map;
var geocoder;
var infowindow = new google.maps.InfoWindow();
var markers = [];
var directionsDisplay = new google.maps.DirectionsRenderer();
var directionsService = new google.maps.DirectionsService();
var JSON_building = "";
var JSON_management = "";
function requestServerCall(url) {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement("script");
script.setAttribute("src", url);
head.appendChild(script);
head.removeChild(script);
}
function jsonpCallback(data,variable) {
var v = variable + " = " + JSON.stringify(data);
//alert(v); // Response data from the server
eval(v);
}
var interval_id;
var loaded = false;
function downloadData(){
if(JSON_management == ""){
var variable = "JSON_building";
var url = SERVER_URL+"Building?take=1000";
requestServerCall(JSON_PROXY_URL+"?callback=jsonpCallback&url="+url+"&variable="+variable);
var variable = "JSON_management";
var url = SERVER_URL+"Management?take=1000";
requestServerCall(JSON_PROXY_URL+"?callback=jsonpCallback&url="+url+"&variable="+variable);
interval_id = setInterval(function(){checkIfDownloaded()},500);
}
}
function checkIfDownloaded(){
if(JSON_management != "" && JSON_building != ""){
clearInterval(interval_id);
initialize();
}
}
function initialize() {
loaded = true;
var start_position = new google.maps.LatLng(57.76755,14.19169);
var mapOptions = {
zoom: 15,
mapTypeId: google.maps.MapTypeId.HYBRID,
center: start_position
};
map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions);
geocoder = new google.maps.Geocoder();
directionsDisplay.setMap(map);
drawManagementMenu();
drawPurposesMenu();
//drawCityMenu();
}
function addBuildingInMap(lat, long, icon, text){
var pos = new google.maps.LatLng(lat,long);
var marker = new google.maps.Marker({
map:map,
draggable:true,
animation: google.maps.Animation.DROP,
position: pos,
content: text
});
marker.setIcon(icon);
markers.push(marker);
google.maps.event.addListener(marker, 'click', showBuildingInfo);
}
function showBuildingInfo(event) {
var contentString = this.content;
infowindow.setContent(contentString);
infowindow.setPosition(event.latLng);
infowindow.open(map);
}
function drawManagementMenu(){
var x = 0;
var y = 0;
var table = "";
var arr = []; //Used for not adding dublicates
for (data in JSON_management) {
if(JSON_management[x] != undefined){
if(JSON_management[x].ID != null){
if(arr.indexOf(JSON_building[x].Title) == -1){
table += '<table width="300" border="0" cellspacing="0" cellpadding="0"><tr><td width="30" valign="middle" align="left"><input name="management'+y+'" type="checkbox" id="management'+y+'"value="1"/></td><td width="270" valign="middle" align="left"><div id="management_text'+y+'">'+JSON_management[x].ID+' '+JSON_management[x].Title+'</div></td><td width="30" valign="middle" align="left"></td></tr></table>';
arr.push(JSON_management[x].Title);
y++;
}
}
}
x++;
}
document.getElementById('Management').innerHTML = table;
}
function drawPurposesMenu(){
var x = 0;
var y = 0;
var table = "";
var arr = []; //Used for not adding dublicates
for (data in JSON_building) {
if(JSON_building[x] != undefined){
if(JSON_building[x].PurposeGUID != null){
if(arr.indexOf(JSON_building[x].PurposeGUID.Title) == -1){
table += '<table width="300" border="0" cellspacing="0" cellpadding="0"><tr><td width="30" valign="left" align="left"><input name="type'+y+'" type="checkbox" id="type'+y+'"value="1" checked="checked" /></td><td width="270" valign="left" align="left"><div id="type_text'+y+'">'+JSON_building[x].PurposeGUID.Title+'</div></td></tr></table>';
arr.push(JSON_building[x].PurposeGUID.Title);
y++;
}
}
}
x++;
}
document.getElementById('Purpose').innerHTML = table;
}
function drawCityMenu(){
var x = 0;
var y = 0;
var table = "";
var arr = []; //Used for not adding dublicates
for (data in JSON_building) {
if(JSON_building[x] != undefined){
if(JSON_building[x].City != null){
if(arr.indexOf(JSON_building[x].City) == -1){
table += '<table width="230" border="0" cellspacing="0" cellpadding="0"><tr><td width="45" valign="left" align="left"><input name="city'+y+'" type="checkbox" id="city'+y+'"value="1"/></td><td width="185" valign="left" align="left"><div id="city_text'+y+'">'+JSON_building[x].City+'</div></td></tr></table>';
arr.push(JSON_building[x].City);
y++;
}
}
}
x++;
}
document.getElementById('City1').innerHTML = table;
}
function deleteAllMarkers() {
if (markers) {
var x = 0;
for (i in markers) {
if(markers[x] != null){
markers[x].setMap(null);
}
x++;
}
}
markers = [];
}
function showBasedOnManagement(){
deleteAllMarkers();
var bounds = new google.maps.LatLngBounds();
var city = [];
for(var i = 0; i < 100; i++){
if(document.getElementById('city'+i) != undefined){
if(document.getElementById('city'+i).checked){
city.push(document.getElementById('city_text'+i).innerHTML);
}
}
}
var management = [];
for(var i = 0; i < 100; i++){
if(document.getElementById('management'+i) != undefined){
if(document.getElementById('management'+i).checked){
management.push(document.getElementById('management_text'+i).innerHTML.substr(0,3));
}
}
}
// Find all buildings lat/long
var x = 0;
var lat = 0;
var long = 0;
var number = 0;
for (data in JSON_building) {
if(JSON_building[x] != undefined){
if(JSON_building[x].ID != undefined){
var ID = JSON_building[x].ID.substr(0,3);
for (var j=0; j<management.length; j++) {
if (management[j].match(ID)){
if(JSON_building[x].Latitude != 0.0 && JSON_building[x].Longitude != 0.0){
lat+= JSON_building[x].Latitude;
long+= JSON_building[x].Longitude;
number++;
}
}
}
}
}
x++;
}
lat = lat / number;
long = long / number;
//alert("Lat:"+lat+" Long:"+long);
var icon = "http://www.labs.astacus.se/geo/icons/sjukhus.png";
addBuildingInMap(''+lat+'',''+long+'',icon,'<b>Byggnad:</b>');
var pos = new google.maps.LatLng(lat,long);
bounds.extend(pos);
x = 0;
for (data in JSON_management) {
if(JSON_management[x] != undefined){
if(ShallShowManagement(JSON_management[x],city) == true){
var icon = "http://www.labs.astacus.se/geo/icons/sjukhus.png";
//addBuildingInMap(''+JSON_building[x].Latitude+'',''+JSON_building[x].Longitude+'',icon,'<b>Byggnad:</b> '+JSON_building[x].Title +" ("+JSON_building[x].ID+")<br><br><b>Verksamhet:</b> "+JSON_building[x].PurposeGUID.Title+"<br><br><b>Adress:</b> <br>"+JSON_building[x].VisitingAddress+"<br>"+JSON_building[x].PostCode+" "+JSON_building[x].City+"<br><br><b>Ägande:</b><br>"+Disposition+"<br><br><b>Ytor:</b><br>"+JSON_building[x].BTA+" kvm (BTA)<br>"+JSON_building[x].BRA+" kvm (BRA)<br>"+JSON_building[x].NTA+" kvm (NTA)<br><br><b>Byggnadsår: </b>"+JSON_building[x].ConstructionYear+" <br><br>"+"<a href=\"javascript:updatePosition('"+JSON_building[x].ID+"');\">Uppdatera position i Landlord</a><br><br><table width='300' border='0' cellspacing='0' cellpadding='0'><tr><td width='100'>Ange din adress:</td><td width='200'><input name='address' type='text' id='address' size='15' /><input type='button' name='button' id='button' value='Visa väg!' onclick='findRoute("+JSON_building[x].ID+");' /></td></tr></table> ");
//var pos = new google.maps.LatLng(JSON_management[x].Latitude,JSON_management[x].Longitude);
//bounds.extend(pos);
}
}
}
if(!bounds.isEmpty()){
map.fitBounds(bounds);
}
}
function showBasedOnPurposeAndManagement(){
if(directionsDisplay != null) {
directionsDisplay.setMap(null);
directionsDisplay = null;
}
deleteAllMarkers();
var bounds = new google.maps.LatLngBounds();
var type = [];
for(var i = 0; i < 100; i++){
if(document.getElementById('type'+i) != undefined){
if(document.getElementById('type'+i).checked){
type.push(document.getElementById('type_text'+i).innerHTML);
}
}
}
var management = [];
for(var i = 0; i < 100; i++){
if(document.getElementById('management'+i) != undefined){
if(document.getElementById('management'+i).checked){
management.push(document.getElementById('management_text'+i).innerHTML.substr(0,3));
}
}
}
var placedManagementOnMap = [];
var x = 0;
for (data in JSON_building) {
if(JSON_building[x] != undefined){
if(JSON_building[x].PurposeGUID != null){
if(type.length > 0){
if(ShallShowBuilding(JSON_building[x],type,management) == true){
var icon = "";
if(JSON_building[x].PurposeGUID.Title == "Sjukhus"){
icon = "http://www.labs.astacus.se/geo/icons/sjukhus.png";
}else if(JSON_building[x].PurposeGUID.Title == "Tandvård"){
icon = "http://www.labs.astacus.se/geo/icons/tand.png";
}else if(JSON_building[x].PurposeGUID.Title == "Vårdcentral"){
icon = "http://www.labs.astacus.se/geo/icons/vard.png";
}else if(JSON_building[x].PurposeGUID.Title == "Produktion"){
icon = "http://www.labs.astacus.se/geo/icons/prod.png";
}else if(JSON_building[x].PurposeGUID.Title == "Familjecentral"){
icon = "http://www.labs.astacus.se/geo/icons/fam.png";
}else if(JSON_building[x].PurposeGUID.Title == "Bostad"){
icon = "http://www.labs.astacus.se/geo/icons/bostad.png";
}else if(JSON_building[x].PurposeGUID.Title == "Skola"){
icon = "http://www.labs.astacus.se/geo/icons/skola.png";
}else if(JSON_building[x].PurposeGUID.Title == "Administration"){
icon = "http://www.labs.astacus.se/geo/icons/admin.png";
}
if(JSON_building[x].VisitingAddress != null){
var Disposition = "Uppgift saknas";
if(JSON_building[x].DispositionGUID != null){
Disposition = JSON_building[x].DispositionGUID.Title;
}
var DispositionValue1 = document.getElementById('Disposition1').checked;
var DispositionValue2 = document.getElementById('Disposition2').checked;
var DispositionValue3 = document.getElementById('Disposition3').checked;
var showBasedOnDisposition = false;
if(DispositionValue1 == true ){
showBasedOnDisposition = true;
}else{
if(DispositionValue2 == true && Disposition == "Egen"){
showBasedOnDisposition = true;
}else if(DispositionValue3 == true && Disposition == "Inhyrd"){
showBasedOnDisposition = true;
}
}
if(showBasedOnDisposition == true){
addBuildingInMap(''+JSON_building[x].Latitude+'',''+JSON_building[x].Longitude+'',icon,'<b>Byggnad:</b> '+JSON_building[x].Title +" ("+JSON_building[x].ID+")<br><br><b>Verksamhet:</b> "+JSON_building[x].PurposeGUID.Title+"<br><br><b>Adress:</b> <br>"+JSON_building[x].VisitingAddress+"<br>"+JSON_building[x].PostCode+" "+JSON_building[x].City+"<br><br><b>Ägande:</b><br>"+Disposition+"<br><br><b>Ytor:</b><br>"+JSON_building[x].BTA+" kvm (BTA)<br>"+JSON_building[x].BRA+" kvm (BRA)<br>"+JSON_building[x].NTA+" kvm (NTA)<br><br><b>Byggnadsår: </b>"+JSON_building[x].ConstructionYear+" <br><br>"+"<a href=\"javascript:updatePosition('"+JSON_building[x].ID+"');\">Uppdatera position i Landlord</a><br><br><table width='300' border='0' cellspacing='0' cellpadding='0'><tr><td width='100'>Ange din adress:</td><td width='200'><input name='address' type='text' id='address' size='15' /><input type='button' name='button' id='button' value='Visa väg!' onclick='findRoute("+JSON_building[x].ID+");' /></td></tr></table> ");
var pos = new google.maps.LatLng(JSON_building[x].Latitude,JSON_building[x].Longitude);
bounds.extend(pos);
}
}
}
}else{
for (var j=0; j<management.length; j++) {
var x = 0;
var lat = 0;
var long = 0;
var number = 0;
for (data in JSON_building) {
if(JSON_building[x] != undefined){
if(JSON_building[x].ID != undefined){
var ID = JSON_building[x].ID.substr(0,3);
if (management[j].match(ID)){
if(JSON_building[x].Latitude != 0.0 && JSON_building[x].Longitude != 0.0){
lat+= JSON_building[x].Latitude;
long+= JSON_building[x].Longitude;
number++;
}
}
}
}
x++;
}
lat = lat / number;
long = long / number;
if(placedManagementOnMap.indexOf(management[j]) === -1){
var html = "<b>Förvaltningsområde:</b>";
var x = 0;
for (data in JSON_management) {
var ID = JSON_management[x].ID.substr(0,3);
if(management[j].match(ID)){
var Ownership = "Uppgift saknas";
if(JSON_management[x].OwnershipGUID != null){
Ownership = JSON_management[x].OwnershipGUID.Title;
}
var District = "Uppgift saknas";
if(JSON_management[x].DistrictGUID != null){
District = JSON_management[x].DistrictGUID.Title;
}
html+= JSON_management[x].Title + "("+JSON_management[x].ID+")";
html+= "<br>Beskrivning: "+JSON_management[x].ManagementDescription;
html+= "<br><br>Adress: "+JSON_management[x].VisitingAddress;
html+= "<br>"+JSON_management[x].PostCode+" "+JSON_management[x].City;
html+= "<br><br>Område: "+District;
html+= "<br>Ägande: "+Ownership;
html+= "<br><br>NTA: "+JSON_management[x].NTA + "<br>BTA: "+JSON_management[x].BTA +"<br>BRA: "+JSON_management[x].BRA;
}
x++;
}
var icon = "http://www.labs.astacus.se/geo/icons/sjukhus.png";
addBuildingInMap(''+lat+'',''+long+'',icon, html);
var pos = new google.maps.LatLng(lat,long);
bounds.extend(pos);
placedManagementOnMap.push(management[j]);
}
}
}
}
}
x++;
}
if(!bounds.isEmpty()){
map.fitBounds(bounds);
}
}
function findRoute(ID){
x = 0;
var lat = 0;
var long = 0;
for (data in JSON_building) {
if(JSON_building[x].ID == ID){
lat = JSON_building[x].Latitude;
long = JSON_building[x].Longitude;
}
x++;
}
var start_position = new google.maps.LatLng(lat,long);
var request = {
origin:start_position,
destination:document.getElementById('address').value,
travelMode: google.maps.TravelMode.DRIVING
};
//alert(document.getElementById('address').value+":"+lat+":"+long);
directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
//marker.setVisible(false);
}
});
}
function ShallShowManagement(_json, city){
var city_found = false;
if(city.length == 0){
city_found = true;
}
var x = 0;
for (c in city) {
if(city[x] == _json.City){
city_found = true;
}
x++;
}
if(city_found == true ){
return true;
}else{
return false;
}
}
function ShallShowBuilding(_json, type, management){
var type_found = false;
var management_found = false;
if(type.length == 0){
type_found = true;
}
if(management.length == 0){
management_found = true;
}
var x = 0;
for (t in type) {
if(type[x] == _json.PurposeGUID.Title){
type_found = true;
}
x++;
}
var x = 0;
for (m in management) {
if(management[x] == _json.ID.substr(0,3)){ // _json.ID.substr(0,3) gives first 3 chars, 101A1 => 101
management_found = true;
}
x++;
}
if(type_found == true && management_found == true ){
return true;
}else{
return false;
}
}
function searchBuilding(){
document.getElementById('not_found').innerHTML = "";
var text = document.getElementById('search').value;
var x = 0;
var found = 0;
var bounds = new google.maps.LatLngBounds();
for(m in markers){
if(markers[x].content.toUpperCase().indexOf(text.toUpperCase()) >= 0){
markers[x].setAnimation(google.maps.Animation.BOUNCE);
setTimeout("markers["+x+"].setAnimation(null)", 3400);
bounds.extend(markers[x].position);
found++;
}
x++;
}
if(found == 0){
document.getElementById('not_found').innerHTML = "Hittas inte!";
}else{
map.fitBounds(bounds);
document.getElementById('not_found').innerHTML = found + " träffar!";
}
}
function updatePosition(ID){
var x = 0;
var lat;
var long;
for(m in markers){
if(markers[x].content.indexOf(ID) > 0){
lat = markers[x].position.lat();
long = markers[x].position.lng();
}
x++;
}
x = 0;
var d = "";
for (data in JSON_building) {
if(JSON_building[x].ID == ID){
JSON_building[x].Latitude = lat;
JSON_building[x].Longitude = long;
d = JSON.stringify(JSON_building[x]);
}
x++;
}
//alert(d);
var ajax = getRequest();
var s = "http://jonkoping.test.5d.se/api/v1/building/action/save/?data="+d;
ajax.open("GET", s, true);
ajax.send(null);
alert("Koordinaterna har uppdaterats, det kan ta upp till 24h innan ändringen slår igenom live");
}
function getRequest() {
var req = false;
try{
// most browsers
req = new XMLHttpRequest();
} catch (e){
// IE
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
// try an older version
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
return false;
}
}
}
return req;
}