我想自动将标记移动到x公里。
这是我的代码:
geocoder.geocode({'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var myMap = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 11,
center: myMap,
scrollwheel: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("show_map"), myOptions);
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
position: results[0].geometry.location,
flat: false,
map: map
});
}
}
我该怎么做?
谢谢。
答案 0 :(得分:5)
只需移动您的标记:
function moveMarker( map, marker ) {
marker.setPosition( new google.maps.LatLng( Lat, Lng) );
map.panTo( new google.maps.LatLng( Lat, Lng) );
};
答案 1 :(得分:1)
如果要在聚合后移动标记:
var marker = new google.maps.Marker({
position: results[0].geometry.location,
flat: false,
map: map,
draggable: true
});
错过一个参数“draggable”并设置为TRUE,默认为FALSE。
答案 2 :(得分:1)
我终于找到了解决方案。 我没有使用地址中的反向地理编码,而是在数据库中获取坐标并按照以下方式应用它们:
var coordinates_str, actual_lat, actual_lng, adjusted_lat, adjusted_lng;
actual_lat = adjusted_lat = '<?php echo $lat ?>';
actual_lng = adjusted_lng = '<?php echo $lng ?>';
adjusted_lat = parseFloat(actual_lat) + (Math.random() -.5) / 25;
adjusted_lng = parseFloat(actual_lng) + (Math.random() -.5) / 25;
coordinates_str = String(adjusted_lat) + String(adjusted_lng);
var coordonnees = new google.maps.LatLng(adjusted_lat, adjusted_lng);
var centerMap = new google.maps.LatLng(adjusted_lat, adjusted_lng);
感谢您的帮助。