/**
* geoportal gmap k api
*/

// Global Vars
var map;
var geocoder;
var markers = {};
var lat;
var lon;
var layer = {};
var layerIcon = {};
var zoom = 1; // Min zoom for markers

// Init map_canvas
function mapInit(){
    geocoder = new GClientGeocoder();
    map = new GMap2(document.getElementById('map_canvas'));
    // Calculate center
    if(lat && lon){
        var center =  new GLatLng(lat, lon, false);
        var inizoom = 8;
    } else {
        var center =  new GLatLng(42.55, 12.7);
        var inizoom = 5;
    }
    map.setCenter(center, inizoom);
    map.addMapType(G_PHYSICAL_MAP);
    map.removeMapType(G_HYBRID_MAP);
    map.addControl(new GMapTypeControl());
    //map.addControl(new GHierarchicalMapTypeControl());
    if(map.getSize().width > 400) {
        map.addControl(new GOverviewMapControl());
        map.addControl(new GLargeMapControl());
    } else {
        map.addControl(new GSmallMapControl());
    }
}


// Show layer
function showLayer(number, zoomto){
    layer[number] = new GGeoXml(langurl + "/kmllayer.html?type=" + number);
	map.addOverlay(layer[number]);
}

function addAddressToMap(response) {
    if (!response || response.Status.code != 200) {
      //alert("Indirizzo non trovato!");
    } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        map.setCenter(point, 8);
    }
}

// Zoom to place
function zoomToPlace(place){
    var geocoder = new GClientGeocoder();
    geocoder.getLocations(place, addAddressToMap);
}

// Hide layer
function hideLayer(number){
    if(typeof layer[number] != 'undefined'){
        map.removeOverlay(layer[number]);
        delete layer[number];
    }
}
