Rev 180 | Rev 183 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 180 | Rev 181 | ||
---|---|---|---|
Line 123... | Line 123... | ||
123 | if (fullscreen.isSupportedBy(document.documentElement)) |
123 | if (fullscreen.isSupportedBy(document.documentElement)) |
124 | { |
124 | { |
125 | var fullscreenLI = jsx.dom.getElementById("cmd3"); |
125 | var fullscreenLI = jsx.dom.getElementById("cmd3"); |
126 | fullscreenLI.firstChild.style.cursor = ""; |
126 | fullscreenLI.firstChild.style.cursor = ""; |
127 | } |
127 | } |
- | 128 | ||
- | 129 | lcars.multiDisplay = new lcars.MultiDisplay(); |
|
128 | } |
130 | } |
129 | </script> |
131 | </script> |
130 | <?php /* <bgsound src="media/interface/sound/beginop.wav" loop="infinite"> */ ?> |
132 | <?php /* <bgsound src="media/interface/sound/beginop.wav" loop="infinite"> */ ?> |
131 | </head> |
133 | </head> |
132 | <body class="fade-in" onload="body_load()"> |
134 | <body class="fade-in" onload="body_load()"> |
Line 499... | Line 501... | ||
499 | <tr> |
501 | <tr> |
500 | <th><?php echo tr('Features'); ?>:</th> |
502 | <th><?php echo tr('Features'); ?>:</th> |
501 | <td><script type="text/javascript"> |
503 | <td><script type="text/javascript"> |
502 | var fullscreen = jsx.dom.window.fullscreen; |
504 | var fullscreen = jsx.dom.window.fullscreen; |
503 | 505 | ||
504 | var map, circle; |
- | |
505 | - | ||
506 | function initGMap () |
- | |
507 | { |
- | |
508 | var coords = jsx.dom.geolocation.position.coords; |
- | |
509 | //var title = document.getElementById("title"); |
- | |
510 | //title.firstChild.textContent = [coords.latitude.toFixed(), "° ", coords.longitude, "° (", coords.accuracy, "\xA0m)"].join(""); |
- | |
511 | var center = new google.maps.LatLng(coords.latitude, coords.longitude); |
- | |
512 | var zoom = 9; |
- | |
513 | - | ||
514 | var zoomAccuracy = [ |
- | |
515 | 1e7, 5e6, 2e6, 2e6, 1e6, 5e5, 2e5, 1e5, 5e4, |
- | |
516 | 2e4, 1e4, 5e3, 2000, 2000, 1000, 500, 200, |
- | |
517 | 100, 50, 20 |
- | |
518 | ]; |
- | |
519 | - | ||
520 | var accuracy = coords.accuracy; |
- | |
521 | if (!isNaN(accuracy)) |
- | |
522 | { |
- | |
523 | for (var i = 0, len = zoomAccuracy.length; i < len; ++i) |
- | |
524 | { |
- | |
525 | if (accuracy > zoomAccuracy[i]) |
- | |
526 | { |
- | |
527 | zoom = i; |
- | |
528 | break; |
- | |
529 | } |
- | |
530 | } |
- | |
531 | } |
- | |
532 | - | ||
533 | if (!map) |
- | |
534 | { |
- | |
535 | var mapOptions = { |
- | |
536 | center: center, |
- | |
537 | zoom: zoom, |
- | |
538 | mapTypeId: google.maps.MapTypeId.HYBRID, |
- | |
539 | backgroundColor: "#000", |
- | |
540 | noClear: true, |
- | |
541 | scaleControl: true |
- | |
542 | }; |
- | |
543 | - | ||
544 | map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); |
- | |
545 | } |
- | |
546 | else |
- | |
547 | { |
- | |
548 | map.setCenter(center); |
- | |
549 | map.setZoom(zoom); |
- | |
550 | } |
- | |
551 | - | ||
552 | if (!circle) |
- | |
553 | { |
- | |
554 | if (!isNaN(coords.accuracy)) |
- | |
555 | { |
- | |
556 | circle = new google.maps.Circle({ |
- | |
557 | map: map, |
- | |
558 | center: center, |
- | |
559 | radius: coords.accuracy, |
- | |
560 | fillColor: "white", |
- | |
561 | fillOpacity: 0.125, |
- | |
562 | strokeColor: "white", |
- | |
563 | strokeOpacity: 0.5 |
- | |
564 | }); |
- | |
565 | circle.addListener("click", function () { |
- | |
566 | window.alert("<?php echo tr('Your current coordinates on Terra'); ?>\n\n" |
- | |
567 | + jsx.dom.geolocation.getText(jsx.dom.geolocation.position)); |
- | |
568 | }); |
- | |
569 | } |
- | |
570 | } |
- | |
571 | else |
- | |
572 | { |
- | |
573 | if (!isNaN(coords.accuracy)) |
- | |
574 | { |
- | |
575 | circle.setCenter(center); |
- | |
576 | circle.setRadius(coords.accuracy); |
- | |
577 | } |
- | |
578 | else |
- | |
579 | { |
- | |
580 | circle.setMap(null); |
- | |
581 | } |
- | |
582 | } |
- | |
583 | - | ||
584 | /* Restore transition */ |
- | |
585 | document.getElementById("content").style.transition = ""; |
- | |
586 | } |
- | |
587 | - | ||
588 | jsx.dom.geolocation = { |
506 | jsx.dom.geolocation = { |
589 | getText: function (position) { |
507 | getText: function (position) { |
590 | var coords = position.coords; |
508 | var coords = position.coords; |
591 | var latitude = coords.latitude; |
509 | var latitude = coords.latitude; |
592 | var longitude = coords.longitude; |
510 | var longitude = coords.longitude; |
Line 603... | Line 521... | ||
603 | "<?php echo tr('Alt. Accuracy:'); ?> " + (altitudeAccuracy != null ? altitudeAccuracy + " m": TEXT_NOT_AVAILABLE), |
521 | "<?php echo tr('Alt. Accuracy:'); ?> " + (altitudeAccuracy != null ? altitudeAccuracy + " m": TEXT_NOT_AVAILABLE), |
604 | "<?php echo tr('Speed:'); ?> " + (speed != null && !isNaN(speed) ? speed + " m∕s": TEXT_NOT_AVAILABLE), |
522 | "<?php echo tr('Speed:'); ?> " + (speed != null && !isNaN(speed) ? speed + " m∕s": TEXT_NOT_AVAILABLE), |
605 | "<?php echo tr('Heading:'); ?> " + (heading != null && !isNaN(heading) ? heading + "°" : TEXT_NOT_AVAILABLE) |
523 | "<?php echo tr('Heading:'); ?> " + (heading != null && !isNaN(heading) ? heading + "°" : TEXT_NOT_AVAILABLE) |
606 | ].join("\n"); |
524 | ].join("\n"); |
607 | }, |
525 | }, |
608 | - | ||
609 | show: function (position) { |
- | |
610 | this.position = position; |
- | |
611 | //document.getElementById("content").innerHTML = "<?php echo tr('Your current coordinates on Terra'); ?>\n\n" + this.getText(position); |
- | |
612 | var title = document.getElementById("title"); |
- | |
613 | title.firstChild.textContent = "<?php echo tr('Geolocation'); ?>"; |
- | |
614 | var content = document.getElementById("content"); |
- | |
615 | - | ||
616 | if (!map) |
- | |
617 | { |
- | |
618 | /* Disable transition while map is loading */ |
- | |
619 | content.style.transition = "none"; |
- | |
620 | content.className = "fixed"; |
- | |
621 | content.innerHTML = |
- | |
622 | // '<select><option>Google Maps</option><option>OpenStreetMap</option></select>' |
- | |
623 | '<div id="map-canvas" style="position: absolute; width: 100%; height: 100%"></div>'; |
- | |
624 | } |
- | |
625 | - | ||
626 | var scriptId = "google-maps"; |
- | |
627 | var script = document.getElementById(scriptId); |
- | |
628 | if (!script) |
- | |
629 | { |
- | |
630 | script = document.createElement("script"); |
- | |
631 | script.id = scriptId; |
- | |
632 | script.type = "text/javascript"; |
- | |
633 | script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyCpW3bu57j4V7_vcK_cVpvFkXMmKkKgADI&sensor=true&callback=initGMap&language=<?php echo $language; ?>"; |
- | |
634 | document.body.appendChild(script); |
- | |
635 | } |
- | |
636 | else |
- | |
637 | { |
- | |
638 | initGMap(); |
- | |
639 | } |
- | |
640 | } |
- | |
641 | }; |
526 | }; |
642 | 527 | ||
643 | (function () { |
528 | (function () { |
644 | function getFeatures () |
529 | function getFeatures () |
645 | { |
530 | { |
Line 684... | Line 569... | ||
684 | } |
569 | } |
685 | 570 | ||
686 | if (navigator.geolocation) |
571 | if (navigator.geolocation) |
687 | { |
572 | { |
688 | features.push('<a href="#" title="<?php echo tr('Get location'); ?>"' |
573 | features.push('<a href="#" title="<?php echo tr('Get location'); ?>"' |
689 | + ' onclick="navigator.geolocation.getCurrentPosition(' |
- | |
690 | + 'function (position) { jsx.dom.geolocation.show(position); }); return false"' |
574 | + ' onclick="return lcars.multiDisplay.geolocate(\'<?php echo tr('Geolocation'); ?>\', \'<?php echo $language; ?>\')"' |
691 | + '><?php echo tr('Geolocation'); ?><\/a>'); |
575 | + '><?php echo tr('Geolocation'); ?><\/a>'); |
692 | } |
576 | } |
693 | 577 | ||
694 | if (typeof navigator.javaEnabled != "undefined" && navigator.javaEnabled()) |
578 | if (typeof navigator.javaEnabled != "undefined" && navigator.javaEnabled()) |
695 | { |
579 | { |