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?或者你的问题是如何在地图上为每个用户创建一个标记?它成功了!我会找出我做错了什么,但是。。。谢谢!:)