使用Google Maps API,我正在动态添加地图标记来跟踪我们的车辆2。该网站使用bootstrap 4.3.1在asp.net c#mvc中编写,并使用ajax请求从以下位置获取最新标记位置:我们使用的车辆追踪器API。地图标记每5分钟更新一次,以显示当前位置。
在本地主机和其中一台内部服务器上运行应用程序时,标记会准确显示它们应在的位置。现在,我已将网站上传到外部Web服务器,我注意到地图标记不准确,并且始终处于错误的位置。
我有一个屏幕截图,显示了在开发工具中正在检查的标记,您可以看到标记应该位于的位置。
See marker and ghost position on screenshot
我已经检查了标记的数据,并且在这方面一切都很好,在检查开发工具中的代码后,似乎标记被CSS向下推,但是我似乎无法找到并取消选择任何会影响标记位置的类。
我已经设法在此处的JSFiddle中复制了该问题,位置数据已针对该演示进行了硬编码;
https://jsfiddle.net/znqo5xaL/
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmvgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<div class="row">
<div id="map"></div>
<script>
var locs;
var markersArray = [];
var map;
function initMap() {
locs = [{"lat":"53,5658418","lng":"-0,8491593","distanceList":null},{"lat":"52,8815088","lng":"-2,1409461","distanceList":null}];
map = new google.maps.Map(
document.getElementById('map'),{ center: new google.maps.LatLng(54.113616,-1.607444),zoom: 6 });
for (var i = 0; i < locs.length; i++) {
var marker = new google.maps.Marker({
position: {lat: parseFloat(locs[i].lat),lng: parseFloat(locs[i].lng)},animation: google.maps.Animation.DROP,map: map,});
markersArray.push(marker);
};
window.setInterval(function() {loadMarkers(image,map,markersArray,locs)},300000);
}
function setMarkers(markersArray,locs,image) {
var locArray;
$.ajax({
url:'../Home/UpdateLoc',dataType: "json",type: "GET",contentType: 'application/json; charset=utf-8',cache: true,success: function (data) {
locArray = data.locArray;
for (var i = 0; i < locArray.length; i++) {
var marker = new google.maps.Marker({
position: {lat: parseFloat(locArray[i].lat),lng: parseFloat(locArray[i].lng)},map: map
});
markersArray.push(marker);
};
},error: function (xhr) {
alert('error');
}
});
}
function loadMarkers (image,locs) {
var tst = markersArray;
for (var i=0; i< tst.length; i++) {
tst[i].setMap(null);
}
setMarkers(markersArray,image);
}
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=&callback=initMap"></script>
</div>
您会发现在Google地图上搜索位置:53.5658418、0.8491593时,其位置与我的地图上显示的位置不同
应该使用上述坐标在Google地图上显示的标记位置。
什么可能导致此问题?