当前位置: 代码迷 >> JavaScript >> 谷歌地图api和socket.io
  详细解决方案

谷歌地图api和socket.io

热度:16   发布时间:2023-06-05 11:41:45.0

我通过 socket.io 从 gps 单元获取 lat 和 lng 到我的浏览器,如下所示:

        socket.on("web_latitude", function(msg) {
            document.getElementById("latitude").innerHTML = msg
        })

        socket.on("web_longitude", function(msg) {
            document.getElementById("longitude").innerHTML = msg
        })

我有一个像这样的谷歌地图:

    function initialize() {

      var mapOptions = {
        center: { lat: -46.85, lng: 150.644},
        marker: {lat: client_lat, lng:client_lng},
        zoom: 8
      };

      var map = new google.maps.Map(document.getElementById('map-canvas'),
          mapOptions);
      }

      google.maps.event.addDomListener(window, 'load', initialize);

我到底如何将 lat 和 lng 注入地图? 我尝试过组合函数,但是如果我添加任何特殊的东西来排除范围变量,谷歌地图似乎会中断。 任何帮助表示赞赏!

  1. 使地图全球化
  2. 检查纬度和经度 div 是否都有有用的值
  3. 使用这些值来设置地图位置

var map;
function initialize() {

  var mapOptions = {
    center: { lat: -46.85, lng: 150.644},
    marker: {lat: client_lat, lng:client_lng},
    zoom: 8
  };

  map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);
}
socket.on("web_latitude", function (msg) {
  document.getElementById("latitude").innerHTML = msg;
  setMap();
});

socket.on("web_longitude", function (msg) {
  document.getElementById("longitude").innerHTML = msg;
  setMap();
});

function setMap() {
  if ((document.getElementById('latitude') != '') && (document.getElementById('longitude') != '')) {
    map.setCenter(new google.maps.LatLng(
      parseFloat(document.getElementById('latitude').innerHTML),
      parseFloat(document.getElementById('longitude').innerHTML)));
  }
}       
google.maps.event.addDomListener(window, 'load', initialize);
  相关解决方案