【发布时间】:2014-12-24 20:12:59
【问题描述】:
我想请你解决这个问题。 我有一个带有变量的 JS,它由 JAVA 应用程序超时更新(即 JAVA 编写器进入线程),之后我从该变量中获取坐标,并为我的谷歌地图创建一个新的对象标记。 问题是标记不会改变位置,只有当我刷新整个页面时它才会改变(我不想这样做)。
这里的代码更清楚。 java应用程序写入变量的inputData.js
var newMarker = {'latitude':38.25705300000004,'longitude': 140.83760400000006};
我用来显示地图的html页面
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Simple markers</title>
<style>
html, body, #map-canvas {
height: 100%;
margin: 0px;
padding: 0px
}
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=MYKEY">
</script>
<script type="text/javascript" src="inputData.js"></script>
<script>
var map;
var sendai = new google.maps.LatLng(38.259535, 140.846816);
var lastPosition;
var image = 'images/circle-16.png';
function initialize() {
var mapOptions = {
zoom: 12,
center: sendai,
mapTypeId: google.maps.MapTypeId.ROADMAP};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
}
setInterval(refreshData, 2000);
function refreshData() {
var marker = new google.maps.Marker({
map: map,
icon: image,
draggable: false
});
marker.setPosition(new google.maps.LatLng(newMarker.latitude, newMarker.longitude));
map.setCenter(new google.maps.LatLng(newMarker.latitude, newMarker.longitude));
map.setZoom(18);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>
如果我像这样打开我的页面,一切正常,但是当我更改脚本“inputData.js”时,标记不会改变位置。 另一方面,setCenter 方法似乎工作正常。
请帮帮我!
【问题讨论】:
标签: javascript html google-maps google-maps-api-3 google-maps-markers