我尝试在我的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>
答案 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"));