Adaptare harta SVG la proiectia Google Map


(Catalin Banu) #1

Am nevoie sa suprapun conturul unui judet/tara peste GoogleMap. API-ul stie asta, toate bune si frumoase.

Problema apare la margini, din cauza proiectie GoogleMapa vs ce svg-uri se gasesc pentru tari.

Intrebare: exista vreo metoda de a adapta svg (convertor, formula, potiune magica) astfel incat sa suprapuna OK peste granitele de pe google map?


(Eduard-Dan Stanescu) #2

Un demo se poate ?


(István F.) #3

Cred ca e vorba de acelasi lucru, doar ca invers.


(Stanciu Bogdan Mircea) #4

Posibil sa fie diferente intre proiecțiile cartografice folosite.


(Catalin Banu) #5

da, intradevar asta este motivul. Intrebarea era cum rezolv problema :slightly_smiling_face:

 window.centerLat = 45.9432;
    window.centerLng = 24.9668;


    function initMap() {
        let map = new google.maps.Map(document.getElementById('map'), {
            center: {lat: window.centerLat, lng: window.centerLng},
            zoom: 7,
            mapTypeId: 'terrain'
        });
        let imageBounds = {
            north: 48.35,
            south: 43.625,
            east: 29.715,
            west: 20.245
        };

        historicalOverlay = new google.maps.GroundOverlay('assets/images/romania.svg', imageBounds);
        historicalOverlay.setMap(map);
    }

initMap()

Iar diferentele de exemplu arata asa:


(Stanciu Bogdan Mircea) #6

In fisierul svg apare definita proiectia? Google maps parcă are default WGS84, iar România folosește Stereo1970. Depinde și de unde ai luat svg-ul. Nu știu cum funționează Google Maps, dar știu de alte resurse asemănătoare (Leaflet) unde poți să convertești dintr-o proiecție în alta înainte de a afișa ceva.

Poți descărca ceva date și de pe pagina geo-spatial, în diferite formate și proiecții.