使用谷歌地图的MVC4 / Razor

时间:2014-07-16 11:10:23

标签: javascript google-maps asp.net-mvc-4 razor

我尝试在我的mvc4局部视图中显示googlemaps地图。如果我在javascript中硬编码纬度和经度,它会起作用 - 但我想让它更动态。所以我试图用变量替换long和lat。但我只有一个灰色的谷歌地图视图。这是我的代码。怎么了?任何人都可以帮我解决这个问题吗?

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

1 个答案:

答案 0 :(得分: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>  

<强>被修改

如果纬度和经度值作为double存储到变量或属性中,则应注意字符串转换,因为文化格式问题。

我认为最好的解决方案是使用ToString("0.#####", CultureInfo.CreateSpecificCulture("en-GB"))方法,如:

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