javascript - 谷歌地图 带有多个标记的多个 map

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

我正在创建一个简单的位置计划,因此基本上每个谷歌地图都会有一个带有不同标记的不同位置。

因此,假设 googlemap2 = 坐标 A 和 googlemap5 = 坐标 B,我需要每个元素都有一个位于坐标 A 和 B 并居中的标记(分别这样,坐标 B 标记永远不会出现在 googlemap2 中,反之亦然)

到目前为止我的代码是这样的

var map;
var map2;

function initialize(condition) {

//--------------------------------------------------------------------------- TTDI 
if(document.getElementById('googlemap2') !== null){
    var map_canvas = document.getElementById('googlemap2');
    var myLatlng = new google.maps.LatLng(3.140425, 101.632005);
    var mapOptions = {
        center: myLatlng,
        zoom: 11,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(map_canvas, mapOptions);
    TestMarker(myLatlng, map);
}
//--------------------------------------------------------------------------- CHERAS
if(document.getElementById('googlemap5') !== null){
    var map_canvas2 = document.getElementById('googlemap5');
    var myLatlng2 = new google.maps.LatLng(3.140425, 99.632004);
    var mapOptions2 = {
        center: myLatlng2,
        zoom: 11,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map2 = new google.maps.Map(map_canvas2, mapOptions2);
    TestMarker(myLatlng2, map2);
}


}


// Testing the addMarker function
function TestMarker(x,y) {

        var marker = new google.maps.Marker({
        position: x,
        map: y
    });
}

基本上它创建了我想要的东西,只是一个烦人的部分,它总是以第一个元素为中心,所以可以说它以 googlemap2 的坐标 A 为中心,googlemap5 将有它的标记,但 map 的中心将关闭。有什么帮助吗?

最佳答案

我会做类似以下的事情来实现您的目标并使类(class)更加灵活。

var Atlas = (function () {

    Atlas = function (name) {
        this.name = name;
    }

    Atlas.prototype = {
        constructMap: function (options) {
            var _this = this;
            this.map = new google.maps.Map(options.canvas, options.mapOptions);
        },

        addMarker: function (center) {
            var _this = this;
            var marker = new google.maps.Marker({
                position: center,
                map: _this.map
            });
        }
    }

    return Atlas;

})();

var mObj1 = {
    canvas: document.getElementById('map1'),
    mapOptions: {
        center: new google.maps.LatLng(3.140425, 101.632005),
        zoom: 11,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    },
}

var mObj2 = {
    canvas: document.getElementById('map2'),
    mapOptions: {
        center: new google.maps.LatLng(3.140425, 99.632004),
        zoom: 11,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
}

var atlas = new Atlas("atlas");

atlas.constructMap(mObj1);
atlas.addMarker(mObj1.mapOptions.center);
atlas.constructMap(mObj2);
atlas.addMarker(mObj2.mapOptions.center);

我在这里为您做了一个演示:

http://jsfiddle.net/wKtmg/

祝你好运!

关于javascript - 谷歌地图 带有多个标记的多个 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20076455/

相关文章:

javascript - 我怎样才能使这个 javascript 更易于阅读、维护和从 OO 背景理解?

javascript - 谷歌地图分为有颜色的区域和子区域

javascript - 如何在谷歌地图中获取降落点纬度和经度

android - 谷歌地图在 android v2.2 上不显示

android - Android WebView 上的 getBoundingClientRect 错误

javascript - header 内容与 POST

javascript - Mojolicious 外部引用不只在一页上工作

javascript - 如何处理多次更新的Firebase数据库安全规则?

android - 带有航路点的 Directions API 总距离和持续时间

javascript - 循环中的对象创建已损坏;展开的作品