谷歌地图js-api.页面上有许多地图
Google maps js api. Many maps on page
我有手风琴(twitter引导程序),每个都有一个地图。手风琴块在foreach中生成。地图生成为局部视图,该视图采用带有纬度、经度和块id的模型。
它调用foreach:
@if (item.Latitude != null)
{
<p>Map:</p>
<div class="map-margin">
@{Html.RenderAction("Map", "Default", new {model = item});}
</div>
}
操作返回此部分视图:
@model MPS.Administration.Models.ReportModel
<div id="map-canvas-@Model.Id.ToString()" style="width: 470px; height: 270px;"></div>
<script type="text/javascript">
$('#map-canvas-@Model.Id').ready(function() {
initialize();
});
function initialize() {
var lat = @Model.Latitude;
var lng = @Model.Longitude;
var latlng = new google.maps.LatLng(@Model.Latitude, @Model.Longitude);
debugger;
var mapOptions = {
center: latlng,
zoom: 17,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var name = 'map-canvas-' + @Model.Id.ToString();
var map = new google.maps.Map(document.getElementById(name),mapOptions);
debugger;
// create a marker
var image = '../Content/Images/map_icon.png';
var marker = new google.maps.Marker({
position: latlng,
map: map,
icon: image
});
}
</script>
在布局上,我包含了js-api的脚本。
现在我有4个区块,但只有最后一个有地图区块(它只有google
标志和灰色背景,没有地图:()。在调试器中,我看到lat和lng四次都是一样的。我认为问题在于如何调用initialize()映射。请帮我解决这个问题。
地图只显示在可见的div中。对于另一个,你只能看到灰色背景,在某些情况下,地图的一小部分位于左上角。
为了查看每个区块中的地图,您应该使用map.resize()
,或者在每次显示新地图时更好地使用generation函数。初始化提示仅在创建窗口时调用,在这种情况下,不可见的映射会失败
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 谷歌地图标记不会显示
- 无法在JS中显示谷歌地图
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 谷歌地图API加载缓慢,有许多标记
- 谷歌地图中的嵌套数组,用于制作许多多边形
- 我需要向谷歌地图 api 添加许多标记,并使用 prompt() 为它们添加注释
- 谷歌地图使用php和jquery动态显示许多标记
- 谷歌地图js-api.页面上有许多地图
- 如何在谷歌地图中绘制具有许多点的折线(并显示折线)
- 在同一个页面上使用许多动态的Google地图- Rails
- Nokia Here地图错误时,建立一个路线与许多坐标
- 如何使用播放,暂停,重置功能控制许多折线上的符号(使用谷歌地图API)
- 如何在地图上添加标记从geoJson与许多点(传单)
- 许多谷歌地图监听器同时存在
- 为具有许多路径的地图设计一个优化的SVG