2016-09-04 3 views
0

Ich versuche verschiedene Karten basierend auf der Funktionalität zu projizieren. Anfangs lade ich die Weltkarte. Wenn der Benutzer auf "USA" klickt, möchte ich zu einer anderen Seite navigieren und "USA" anzeigen. Wenn der Benutzer auf "RUS" klickt, möchte ich die "RUS" -Karte anzeigen.Datamaps - Laden verschiedener Länderkarten mit Weltkarte

Das Problem, das ich bin vor, wenn ich „datamaps.world.js“ und „datamaps.usa.js“ umfassen, erhalte ich eine erro sagen

datamaps-all.js:1 Uncaught TypeError: Cannot read property 'world' of undefined 

Dies verursacht, weil ich versucht bin lade sowohl datamaps.world als auch datamps.usa. oder irgendein anderes Land für diese Angelegenheit.

Gibt es einen Workaround dafür?

I Jade für Templating-System benutzen

script(src="/javascripts/d3.v3.min.js") 
script(src="/javascripts/topojson.v1.min.js") 
script(src="/javascripts/d3-queue.v3.min.js") 
script(src="/javascripts/datamaps-usa.js") 
script(src="/javascripts/datamaps.world.mod.js") 
script(src="/javascripts/datamaps-all.js") 

habe ich versucht, die unten stehende Skript dynamisch verschiedene Javascript auf jeder Seite geladen zu laden, aber es funktioniert nicht.

script. 
    if ((window.location.href).indexOf("country=USA") <= -1) { 
     var script = document.createElement("script"); 
     script.type = "text/javascript"; 
     script.src = "/javascript/datamaps-usa.js"; 
    } else { 
     var script = document.createElement("script"); 
     script.type = "text/javascript"; 
     script.src = "/javascript/datamaps-world.js"; 
    } 

Datenzuordnungen Erklärung:

var map = new Datamap({ 
    scope: 'world', 
    element: document.getElementById('canvas'), 
    projection: 'mercator', 
    height:900, 
    width:null, 
    responsive: true, 
    geographyConfig: { 
     hideAntarctica: true, 
     hideHawaiiAndAlaska : false, 
     borderWidth: 1.5, 
     borderOpacity: 0, 
     borderColor: '#ffffff' 
    }, .... [truncated] 

Ich plane, alle Länder zu projizieren. Ich möchte wissen, wie man das erreicht? Community-Hilfe anfordern

Danke.

Antwort

Verwandte Themen