Node.js 如何向所有连接的套接字广播GoogleMaps标记?

Node.js 如何向所有连接的套接字广播GoogleMaps标记?,node.js,google-maps,socket.io,Node.js,Google Maps,Socket.io,//客户端 //单击映射时,此事件侦听器将调用addMarker()。 google.maps.event.addListener(映射,'click',函数(事件){ 添加标记(事件标记); emit('marker',{'lat':标记[0].position.k,'long':标记[0].position.D}); emit('show-marker',addMarker); }); }您想在服务器端使用socket.broadcast.emit('show-marker',data)。这

//客户端
//单击映射时,此事件侦听器将调用addMarker()。
google.maps.event.addListener(映射,'click',函数(事件){
添加标记(事件标记);
emit('marker',{'lat':标记[0].position.k,'long':标记[0].position.D});
emit('show-marker',addMarker);
});

}
您想在服务器端使用
socket.broadcast.emit('show-marker',data)
。这将向其他玩家发出“显示标记”事件。试试这个:

客户端:

var markers = [];

// This event listener will call addMarker() when the map is clicked.
google.maps.event.addListener(map, 'click', function(event) {

    var marker = addMarker(event.latLng);

    //Notice the spelling of longitude "lng"
    socket.emit('marker', {
        'lat': marker.position.k,
        'lng': marker.position.D
    });
});

// Add a marker to the map and push to the array.
function addMarker(location) {

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

    markers.push(marker);

    console.log(location);
    console.log("marker: " + marker.position.k + " " + marker.position.D);

    return marker;
}

//Listen for other players' markers
socket.on('show-marker', addMarker);
io.on('connection', function(socket) {

    console.log('a user connected');

    //Listen for a marker event from a player
    socket.on('marker', function(data) {

        console.log('marker latitude: ' + data.lat + ', marker longitude:' + data.lng);

        //Broadcast marker location to every player except the one who sent it
        socket.broadcast.emit('show-marker', data);
    });
});
服务器:

var markers = [];

// This event listener will call addMarker() when the map is clicked.
google.maps.event.addListener(map, 'click', function(event) {

    var marker = addMarker(event.latLng);

    //Notice the spelling of longitude "lng"
    socket.emit('marker', {
        'lat': marker.position.k,
        'lng': marker.position.D
    });
});

// Add a marker to the map and push to the array.
function addMarker(location) {

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

    markers.push(marker);

    console.log(location);
    console.log("marker: " + marker.position.k + " " + marker.position.D);

    return marker;
}

//Listen for other players' markers
socket.on('show-marker', addMarker);
io.on('connection', function(socket) {

    console.log('a user connected');

    //Listen for a marker event from a player
    socket.on('marker', function(data) {

        console.log('marker latitude: ' + data.lat + ', marker longitude:' + data.lng);

        //Broadcast marker location to every player except the one who sent it
        socket.broadcast.emit('show-marker', data);
    });
});

您的问题是如何通过webSocket发送lat/long?或者你的问题是如何在地图上为每个用户创建一个标记?它成功了!我会找出我做错了什么,但是。。。谢谢!:)