- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的页面上有一些 Google map 。一次仅显示一张 map ,您可以通过单击按钮从一张 map 更改为另一张 map 。由于当 Google map 首次初始化 map 时,某些 map 是隐藏的,因此我需要“刷新”正在显示的 map ,为此我需要获取 map 的中心。我使用 map.getCenter()
但不知怎的,中心在到达那里之前就发生了变化。
我已经调试了以下代码,我知道它在哪里发生了变化,但原因仍然是个谜。
function initMaps() {
if ($('.gmap').length) {
var $maps = $('.gmap'),
myOptions = {
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP,
scrollwheel: false,
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'mapStyle']
}
},
maps = {};
$maps.each(function () {
var latitude = parseFloat($(this).attr('data-latitude')),
longitude = parseFloat($(this).attr('data-longitude')),
mapNumber = $(this).attr('data-number'),
baseLatLng = new google.maps.LatLng(latitude, longitude);
myOptions.center = baseLatLng;
maps[mapNumber] = new google.maps.Map(this, myOptions);
var mapCustomType = new google.maps.StyledMapType(mapStyle, myOptions);
maps[mapNumber].mapTypes.set('custom', mapCustomType);
maps[mapNumber].setMapTypeId('custom');
});
$('.map').hide();
$('.map:first').show();
console.log(maps); // Centers are the same
changeMaps(maps);
}
}
function changeMaps(maps) {
console.log(maps); // Centers are the same
$('.maps-list span').click(function () {
console.log(maps); // Centers have changed !!!
var $mapClass = $('.map-' + $(this).attr('class')),
map = maps[parseInt($mapClass.find('.gmap').attr('data-number'))];
$('.map').hide();
$mapClass.show();
refreshMap(map);
});
}
function refreshMap(map) {
google.maps.event.trigger(map, 'resize');
map.setCenter(map.getCenter());
}
在 changeMaps()
函数中,我的第二张 map (最初隐藏的 map )的中心在按钮的单击事件期间发生变化,该按钮除了触发此函数之外什么也不做。我确实删除了几个变量并更改了一些类名,以便代码更易于阅读,因此您可以忽略代码的任何其他问题。
我想知道为什么中心会发生变化,但如果你有一个更干净的方法来完成所有这些,那就太好了。
最佳答案
此代码不会产生任何效果:
map.setCenter(map.getCenter());
getCenter()
返回 map 当前的center
(当您调整 map 大小时,该中心会发生变化),而不是最初设置的值。
您必须将初始值存储在另一个属性中,然后将中心设置为存储的值。
在initMaps()
中:
myOptions.center = myOptions._center = baseLatLng;
在refreshMap()
中:
map.setCenter(map._center);
关于javascript - Google map 正在更改 map 中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28288367/
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: How to align a to the middle of the page 这是一个简单的问题,应该有一个简
我想知道如何在屏幕中央的ListView中生成2个itens。 class _CategoriesState extends State { List categories = ["Anterio
我需要修复 UICollectionView 的一个小问题,当在 6s 设备尺寸上时,我得到如下布局: 但是,我想知道将它们居中以使其成为两条线的最佳方法是什么,或者我应该将它们缩小一点以便可以放置其
我尝试在 UIImageView 中居中 CAShapeLayer 但没有成功,我找到了解决方案,将其(CAShapeLayer)添加到 UIVIew,然后将 UIVIew 添加到 ImageView
一直在从线性布局和相对布局切换,因为我想实现图像的居中。 显示图片:
* { margin:0; padding:0; } /** General Style Info **/ body { background: #003d4c; co
我目前正在尝试修改我在 Wordpress 上的 Royal Slider 插件 (http://dimsemenov.com/plugins/royal-slider/) 我的目标是将所有标题的文本
我已经坚持了一段时间,因此简化了我的要求。当您单击标记时,信息窗口将打开,当用户缩放时,我希望该标记位于 map 的中心。这不起作用,但我认为它很接近: function bindInfoWindow
/* Linked Styles */ body { padding: 0 !important;
这个问题在这里已经有了答案: How do I center floated elements? (12 个答案) 关闭 7 年前。
这个问题在这里已经有了答案: Is there an equivalent to background-size: cover and contain for image elements? (1
我试图让我的页眉停留在页面的中间,不管我在什么窗口大小。 我试过使用 Bootstrap。 StackOverflow 还有这个 CSS。 .section-t
我有一个 1600 像素宽的页面。主要区域虽然只有 900 像素宽。我有一个导航应该固定在页面的中心(它是)。我的问题是当我打开页面时,页面固定在左侧而不是在打开时居中。当用户访问该网站时,我需要做什
我正在尝试找到 View 的中心。对于非旋转 View ,该值是正确的,但对于旋转 View ,它不正确,因为中心 (0,0) 正在旋转。在缩放的情况下,即使缩放后宽度和高度也保持不变 我正在使用以下
预期效果是将 Kartennummer 和 Passwort 集中。 这怎么可能? 我为此使用了一个自定义类: import 'package:flutter/material.dart'; impo
我管理着许多 Maven 项目。他们中的大多数部署到我们的内部 maven 存储库。现在我想开始向 Maven Central 发布一个项目。到目前为止,我有一个父 POM,它指定了我们内部存储库的
我试图锚定两个进展,但我看不到获得预期结果的方法。 我希望左边的进度条固定在左边,右边的条固定在中心固定(如下图所示) (下图显示调整大小的表格) 我尝试将控件放在具有各种 anchor 的停靠面板上
我正在玩 Angular 模态 ui 对话框。我想知道有什么方法可以让它居中?我发现了一个类似的问题: Twitter Bootstrap - Center Modal Dialog 但无法使其工作,
是否可以将值标签放置在条形上,使它们位于条形的中心? 如果我设置条形 align: "center",则条形上的标签将关闭且不居中。 $(function() { var d
http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-signalr-20-s
我是一名优秀的程序员,十分优秀!