hdalab/js/geojson_quickconv.js
author veltr
Mon, 06 Feb 2012 18:50:19 +0100
changeset 118 fdf808d7d374
parent 115 46c0f7a935d1
permissions -rw-r--r--
Ajout de l agregation geographique par pays et des donnees insee

gomNs.countryLabels = {
AFG: 'Afghanistan',
AGO: 'Angola',
ALB: 'Albanie',
ARG: 'Argentine',
ARM: 'Arménie',
ATA: 'Antarctique',
AUS: 'Australie',
AUT: 'Autriche',
AZE: 'Azerbaïdjan',
BDI: 'Burundi',
BEL: 'Belgique',
BEN: 'Bénin',
BGR: 'Bulgarie',
BIH: 'Bosnie-Herzégovine',
BOL: 'Bolivie',
BRA: 'Brésil',
BRN: 'Brunei',
CAF: 'République centrafricaine',
CAN: 'Canada',
CHE: 'Suisse',
CHL: 'Chili',
CHN: 'Chine',
CIV: 'Côte d\'Ivoire',
CMR: 'Cameroun',
COD: 'République démocratique du Congo',
CZE: 'République tchèque',
DEU: 'Allemagne',
DNK: 'Danemark',
DZA: 'Algérie',
EGY: 'Égypte',
ESP: 'Espagne',
EST: 'Estonie',
ETH: 'Éthiopie',
FIN: 'Finlande',
FRA: 'France',
GAB: 'Gabon',
GBR: 'Royaume-Uni',
GGY: 'Guernesey',
GHA: 'Ghana',
GLP: 'Guadeloupe',
GRC: 'Grèce',
GUF: 'Guyane',
HTI: 'Haïti',
HUN: 'Hongrie',
IDN: 'Indonésie',
IND: 'Inde',
IRL: 'Irlande',
IRN: 'Iran',
ISL: 'Islande',
ISR: 'Israël',
ITA: 'Italie',
JAM: 'Jamaïque',
JEY: 'Jersey',
JPN: 'Japon',
KAZ: 'Kazakhstan',
KGZ: 'Kirghizistan',
KHM: 'Cambodge',
LBN: 'Liban',
LTU: 'Lituanie',
LVA: 'Lettonie',
MAR: 'Maroc',
MDA: 'Moldavie',
MEX: 'Mexique',
MLI: 'Mali',
MLT: 'Malte',
MMR: 'Birmanie',
MNG: 'Mongolie',
MOZ: 'Mozambique',
MTQ: 'Martinique',
NCL: 'Nouvelle-Calédonie',
NER: 'Niger',
NGA: 'Nigeria',
NLD: 'Pays-Bas',
NOR: 'Norvège',
NPL: 'Népal',
NZL: 'Nouvelle-Zélande',
PAK: 'Pakistan',
PHL: 'Philippines',
PNG: 'Papouasie-Nouvelle-Guinée',
POL: 'Pologne',
PRT: 'Portugal',
PSE: 'Palestine',
PYF: 'Polynésie française',
ROU: 'Roumanie',
RUS: 'Russie',
SDN: 'Soudan',
SEN: 'Sénégal',
SGP: 'Singapour',
SLV: 'Salvador',
SVK: 'Slovaquie',
SVN: 'Slovénie',
SWE: 'Suède',
SYR: 'Syrie',
TCD: 'Tchad',
THA: 'Thaïlande',
TJK: 'Tadjikistan',
TTO: 'Trinité-et-Tobago',
TUN: 'Tunisie',
TUR: 'Turquie',
UGA: 'Ouganda',
UKR: 'Ukraine',
USA: 'États-Unis',
UZB: 'Ouzbékistan',
VNM: 'Viêt Nam',
ZAF: 'Afrique du Sud'
}

function polygon_to_gmap(polycoords, isocode) {
    var _opts =  {
        strokeColor: "#000000",
        strokeWeight: .5,
        fillColor: "#7070a0",
        fillOpacity: .8,
        title: isocode
    }
    _opts.paths = polycoords.map(function(path) {
        return path.map(function(coord) {
            return new google.maps.LatLng(coord[1], coord[0]);
        });
    });
    var _polygon = new google.maps.Polygon(_opts);
    _polygon.setMap(gomNs.map);
    if (gomNs.countryLabels[isocode]) {
        google.maps.event.addListener(_polygon, 'click', function(a,b) {
            addFilter('country', isocode);
        })
    }
    return _polygon;
}

function showCountriesGmap(geoJson) {
    gomNs.countries = {};
    _(geoJson.features).each(function(feature) {
        var _el = { "label" : gomNs.countryLabels[feature.id] };
        if (feature.id == 'ATA') {
            _el.gPolygons = [];
        } else {
            switch(feature.geometry.type) {
                case('Polygon'):
                    _el.gPolygons = [ polygon_to_gmap(feature.geometry.coordinates, feature.id) ];
                break;
                case('MultiPolygon'):
                    _el.gPolygons = feature.geometry.coordinates.map(function(polygon) {
                        return polygon_to_gmap(polygon, feature.id);
                    })
                break;
            }
        }
        gomNs.countries[feature.id] = _el;
    });
}

function showCountriesLeaflet(geoJson) {
    gomNs.countries = {};
    var gJ = new L.GeoJSON();
    gJ.on('featureparse', function(_f) {
        var isocode = _f.id;
        _f.layer.setStyle({
            color: "#000000",
            weight: .5,
            fillColor: "#7070a0",
            fillOpacity: .8
        });
        if (gomNs.countryLabels[isocode]) {
            _f.layer.on('click', function() {
                addFilter('country', isocode);
            });
        }
        gomNs.countries[_f.id] = _f.layer;
    });
    gJ.addGeoJSON(geoJson);
    gomNs.map.addLayer(gJ);
}