2014-07-16 52 views
0

我嘗試在我的mvc4部分視圖中顯示谷歌地圖。它工作,如果我硬編碼的緯度和經度在JavaScript - 但我想使它更動態。所以我試圖用變量替換long和lat。但我只有一個灰色的Google地圖視圖。這是我的代碼。哪裏不對?任何人都可以幫我解決這個問題嗎?MVC4 /剃刀與谷歌地圖

<br /> 
<div id="map_canvas" style="width: 640px; height: 480px;"> 
</div> 

@{ 
var lat = 6.9167; 
var lng = 79.8473; 
} 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">  </script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    initialize(); 
}); 
function initialize() { 
    var mapOptions = { 
     center: new google.maps.LatLng('@lat', '@lng'), 
     zoom: 10, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), 
     mapOptions); 
} 
</script> 

回答

0

嘗試:

<br /> 
<div id="map_canvas" style="width: 640px; height: 480px;"> 
</div> 

@{ 
var lat = "6.9167"; 
var lng = "79.8473"; 
} 

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">  </script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    initialize(); 
}); 
function initialize(lat, lng) { 
    var mapOptions = { 
     center: new google.maps.LatLng(@lat, @lng), 
     zoom: 10, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), 
     mapOptions); 
} 
</script> 

編輯

如果緯度和經度值存儲爲雙入變量或屬性時,應注意字符串皈依因爲文化格式問題。

我認爲,最好的解決辦法是使用ToString("0.#####", CultureInfo.CreateSpecificCulture("en-GB"))方法,如:

var lat = Model.latitude.ToString("0.#####", CultureInfo.CreateSpecificCulture("en-GB")); 
+0

好吧,這工作得很好 - 謝謝。但我怎麼能用我的模型/控制器中的變量來做到這一點?如果我嘗試這樣做:@ { var lat = Model.latitude; var lng = Model.longitude; }我得到一個白色區域而不是我的地圖 – user3822039

+0

@ user3822039我編輯了我的答案。 – GmG

+0

非常感謝您的幫助! – user3822039