Updated Google Maps widget

preferencesAboutTextFull
Craig Watson 9 years ago
parent 5f97b1cf62
commit 6593b22e5e
  1. 121
      resources/library/applications/GoogleMap.wgt/index.html

@ -1,116 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:v="urn:schemas-microsoft-com:vml">
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps</title>
<script src="http://www.google.com/jsapi?key=ABQIAAAA6vtVqAUu8kZ_eTz7c8kwSBT9UCAhw_xm0LNFHsWmQxTJAdp5lxSY_5r-lZriY_7sACaMnl80JcX6Og"></script>
<style type="text/css">
@import url("http://www.google.com/uds/css/gsearch.css");
@import url("http://www.google.com/uds/solutions/localsearch/gmlocalsearch.css");
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
</style>
<script type="text/javascript">
var language = window.sankore ? sankore.locale().substr(0,2) : "en";
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
google.load("maps", "2");
google.load("elements", "1", {
packages : ["localsearch"]
});
function initialize()
function initMap()
{
var map = null;
var defaultMapType = G_SATELLITE_MAP;
var map;
var mapType = null;
var lat = 30;
var lng = 0;
var zoom = 2;
var latlng = new google.maps.LatLng(lat, lng);
if (window.sankore)
{
// Default map type can be ROADMAP, SATELLITE, HYBRID or TERRAIN
var defaultMapType = google.maps.MapTypeId.HYBRID;
var lat = 46.2;
var lng = 6.14;
var zoom = 4;
var position = new google.maps.LatLng(lat, lng);
if (window.sankore) {
lat = parseFloat(window.sankore.preference('latitude', lat));
lng = parseFloat(window.sankore.preference('longitude', lng));
zoom = parseFloat(window.sankore.preference('zoom', zoom));
mapType = window.sankore.preference('mapType', mapType);
mapType = window.sankore.preference('mapTypeId', mapType);
latlng = new google.maps.LatLng(lat, lng);
position = new google.maps.LatLng(lat, lng);
};
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(latlng);
map.setUIToDefault();
var mapTypeToSet = defaultMapType;
if (mapType != null) {
mapTypeToSet = map.getMapTypes()[mapType];
}
map.setMapType(mapTypeToSet);
map.setZoom(zoom);
map.addControl(new google.elements.LocalSearch(),
new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(5,30)));
// Add persistence
if (window.sankore)
{
GEvent.addListener(map,'zoomend',function()
map = new google.maps.Map(document.getElementById('map'), {
center: position,
zoom: zoom,
mapTypeId: mapType ? mapType : defaultMapType
});
if (window.sankore) {
map.addListener('zoom_changed',function()
{
window.sankore.setPreference('zoom', map.getZoom());
});
GEvent.addListener(map,'moveend',function()
map.addListener('dragend',function()
{
window.sankore.setPreference('latitude', map.getCenter().lat());
window.sankore.setPreference('longitude', map.getCenter().lng());
});
GEvent.addListener(map,'maptypechanged',function()
map.addListener('maptypeid_changed',function()
{
var newMapType = null;
for (var i = 0; i < map.getMapTypes().length; i++) {
var aMaptype = map.getMapTypes()[i];
if (aMaptype == map.getCurrentMapType()) {
newMapType = i;
break;
}
}
window.sankore.setPreference('mapType', newMapType);
window.sankore.setPreference('mapTypeId', map.getMapTypeId());
});
};
}
window.onresize();
};
}
window.onresize = function()
{
document.getElementById('map_canvas').style.width = window.innerWidth + 'px';
document.getElementById('map_canvas').style.height = window.innerHeight + 'px';
document.getElementById('map').style.width = window.innerWidth + 'px';
document.getElementById('map').style.height = window.innerHeight + 'px';
};
</script>
</head>
<body onload="initialize()" style="margin: 0px">
<div id="map_canvas" style="width: 800px; height: 600px"></div>
</body>
<body>
<div id="map" style="width: 800px; height: 600px"></div>
</body>
<script>
// language has to be set in the URL, hence this way of loading the API
document.write('\x3Cscript src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBjqhXNSem9YdHR2GAb8zx0qHl4S1RsKxE&callback=initMap&language='+language+'">\x3C/script>');
</script>
</html>

Loading…
Cancel
Save