2016-09-04 10 views
0

私は機能に基づいて異なる地図を投影しようとしています。最初は、私は世界地図をロードしています。ユーザーが「usa」をクリックすると、別のページに移動して「USA」マップを表示したいと思います。ユーザーが「RUS」をクリックすると、「RUS」マップを表示します。Datamaps - 世界地図と一緒に異なる国の地図を読み込む

私が直面しています問題は、私は「datamaps.world.js」と「datamaps.usa.js」が含まれるとき、私はERRO言ってを取得している、

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

私がしようとしていますので、これが原因とされますdatamaps.worldとdatamps.usaの両方をロードします。その問題に関しては、他の国に

回避策はありますか?

私はテンプレートシステム、

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") 

ためにジェイドを使用しています私は動的にすべてのページの負荷に異なるJavascriptをロードするには、以下のスクリプトを試してみましたが、それは動作しません。

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"; 
    } 

データマップ宣言:

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] 

私はすべての国を投影する予定。私はこれを達成する方法を知りたいですか?コミュニティヘルプをリクエストしています。

ありがとうございました。

答えて

関連する問題