2014-06-20 55 views
0

我想在本地主機上的文本文件中傳遞初始開始值。將值傳遞到谷歌地圖api從本地主機上的文本文件

有人可以請解釋如何正確地做到這一點?

我一直在試圖遵循教程,但他們都假設從閱讀器讀入文件。

我不太瞭解JavaScript。

這不起作用

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>test</title> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
<meta charset="utf-8"> 
<style> 
    html, body, #map-canvas { 
    height: 100%; 
    margin: 0px; 
    padding: 0px 
    } 
</style> 
<script> 
    function initialize() { 

     var lat = 0; 
     var long = 0; 

     var center = File("Center.txt"); 
     var reader = new FileReader(); 
     reader.onload = function (e) { 
      var results = reader.result; 
     } 
     reader.readAsText(center);   
     var text = reader.result.toString(); 
     var stringAr = text.split(","); 
     lat = stringAr[0]; 
     long = stringAr[1]; 


     var mapOptions = { 
      zoom: 8, 
      center: new google.maps.LatLng(lat, long) 
     }; 

     var map = new google.maps.Map(document.getElementById('map-canvas'), 
      mapOptions); 


     map.data.loadGeoJson('test.json'); 
    } 

    function loadScript() { 
     var script = document.createElement('script'); 
     script.type = 'text/javascript'; 
     script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&' + 
      'callback=initialize'; 
     document.body.appendChild(script); 
    } 

    window.onload = loadScript; 
</script> 
</head> 
<body> 
    <div id="map-canvas"></div> 
</body> 
</html> 

如果我註釋掉的所有文件閱讀器的東西它的工作原理,但我需要能夠在LAT長參數傳遞無需用戶做任何選擇。

我還可以從json文件中讀取它們,並按照與數據相同的方式進行設置?

+1

告訴我們你的Center.txt文件的內容是什麼樣子。如果在調用'var text = reader.result.toString();'後輸出'console.log(text)',你會得到什麼? – duncan

+0

啊,我不知道關於JavaScript控制檯,沒有輸出,但我得到這個錯誤未捕獲TypeError:無法執行'FileReader''readAsText':參數不是一個Blob。 – DanBrum

+0

我不是100%確定,但我認爲這行'var center = File(「Center.txt」);'是不正確的。看起來你不能只使用File()構造函數。查看一些教程如何獲取'File'參考,例如[使用File API讀取JavaScript中的文件](http://www.html5rocks.com/en/tutorials/file/dndfiles/) –

回答

0

問題可能是您從文本文件中讀取的值正在保存爲字符串。 Google地圖需要Number對象。你可以簡單地使用parseFloat()來解決這個問題:

lat = parseFloat(stringAr[0]); 
long = parseFloat(stringAr[1]); 
+0

謝謝,但它仍然無法正常工作。 – DanBrum

相關問題