javascript - 动态谷歌地图集成的问题

标签 javascript html google-maps google-chrome google-maps-api-3

我在 Chrome 5.0.375.99 中使用 Google map 时遇到了一个非常奇怪的问题: 如果您动态创建多个 map 实例,则第二个及以后的 map 实例会出现一个奇怪的错误,它无法正确显示,仅显示在 map 空间的一小部分中。

一些示例页面:
one default - 点击addOne时,新对象出现问题。
none default - 第二次点击addOne时,新对象出现问题。
two default - 两个初始 map 都显示正常,但是当您单击addOne时,新对象出现问题。

真正奇怪的部分是,重新调整窗口大小将强制任何不正确显示的 map 正确显示以自行修复。这让我相信修复它的是重绘事件

最佳答案

Crescent Fresh 是正确的,因为需要在 div 上初始化新 map 之前设置 div 的尺寸。

要在创建 map div 之前设置宽度高度,您可以尝试以下操作:

return this.each(function(){
    var jT = $(this),
            center = new mAPI.LatLng(options.lat, options.long),
            geocoder = new mAPI.Geocoder();

    jT.css({
        'width': hw[0],
        'height': hw[1],
        'margin-left': 'auto',
        'margin-right': 'auto'
    });

    jT.data('map', new mAPI.Map(this, $.extend(options, { center: center })));

    geocoder.geocode({ address: address }, function(results, status) {
        if (status === mAPI.GeocoderStatus.OK && results.length) {
            if (status !== mAPI.GeocoderStatus.ZERO_RESULTS) {
                jT.data('map').setCenter(results[0].geometry.location);
                var dump = new mAPI.Marker({
                        position: results[0].geometry.location,
                        map: jT.data('map')
                });
                return dump;
            }
        }
    });
});

上面的“应该”有效,但还没有测试过

关于javascript - 动态谷歌地图集成的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3196411/

相关文章:

javascript - 想要给每个元素不同的ID

javascript - 如何将按钮作为html添加到div并添加点击功能

javascript - 如何顺序运行JavaScript代码?

google-maps - Google Fusion Tables 与 Derek Eder 的可搜索 map 模板 - 我可以对多张 map 进行分层吗?

javascript - 谷歌地图 API : How to zoom in on and set different centers for multiple markers in for loop?

javascript - 关卡计时器 - 如何在 Unity 中创建时间限制?

javascript - React - 切换 css 类

html - 如何将文件夹作为html中的输入?

java - 将 XML 数据 "location"解析为 Google map

javascript - Angularjs教程第7步;无法看到动态创建的列表