问题描述
我通过 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楼
geocodezip
1
已采纳
2015-07-31 00:20:59
- 使地图全球化
- 检查纬度和经度 div 是否都有有用的值
- 使用这些值来设置地图位置
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);