【发布时间】:2015-06-05 01:28:33
【问题描述】:
我关注this tutorial 在我的 ASP.NET MVC5 项目中创建 Google 地图 API。
我已将此代码添加到我的_Layout.cshtml(在底部,<html> 部分下方 - 已尝试按照建议 here 将它们移动到 <head> 部分,但没有任何区别):
<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(6.9167, 79.8473),
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
// create a marker
var latlng = new google.maps.LatLng(6.9167, 79.8473);
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: 'My Place'
});
}
</script>
此代码显示在我的视图中(在我希望地图显示的位置):
<div id="map_canvas" style="width: 640px; height: 480px;">
</div>
在我的 _Layout <body> 部分的底部,我有:
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
在我的注册捆绑功能中(我知道它正在工作,因为在其他地方渲染其他捆绑正在工作)我有:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
但它不起作用。我得到的是这样的空白区域(如果需要,请单击更大的版本):
但没有地图。
我已经查看了页面源代码,并且两段代码都出现在其中。我不知道还有什么可以看或尝试的,如果我错过了一些关键步骤,如果我需要为 MVC5 做一些不同的事情(本教程是针对 MVC4),如果谷歌 API 再次发生变化并且您需要再次使用密钥才能使用它,或者如果问题完全是其他问题。
更新: 上面的代码在 this fiddle 中工作(感谢 HoangHieu 让我开始使用 JSFiddle),所以问题肯定出在设置或链接在一起,而不是 JavaScript/ JQuery 本身。
【问题讨论】:
-
$(document).ready(function () { initialize(); }); 改成 window.onload = initialize;
-
@HoangHieu 完成。那并没有改变什么。理由是什么?
-
什么意思???在您的更改地图无法显示之后?或显示???
-
@HoangHieu 我的意思是改变后的行为和上面描述的完全一样(没有地图,大的空白)。
标签: javascript html google-maps google-maps-api-3 asp.net-mvc-5