0

我想将标记自动移动到 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
        });

    }
}

我怎样才能做到这一点?

谢谢你。

4

3 回答 3

5

只需移动您的标记:

function moveMarker( map, marker ) {

    marker.setPosition( new google.maps.LatLng( Lat, Lng) );
    map.panTo( new google.maps.LatLng( Lat, Lng) );

};
于 2013-09-09T16:10:49.603 回答
1

如果要在聚合后移动标记:

var marker = new google.maps.Marker({
        position: results[0].geometry.location,
        flat: false,
        map: map,
        draggable: true
    });

错过一个参数“可拖动”并设置为TRUE,默认为FALSE。

于 2013-09-09T16:06:03.907 回答
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);

感谢您的帮助。

于 2013-09-10T12:29:32.497 回答