【问题标题】:How to move a marker in Google Maps?如何在谷歌地图中移动标记?
【发布时间】:2013-09-13 02:03:35
【问题描述】:

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

    }
}

我该怎么做?

谢谢。

【问题讨论】:

  • x 公里在哪里?朝什么方向?你试过什么?
  • 感谢您的回答。从标记的原始位置随机 x 公里。
  • @Beno,你能解释一下你想要达到的目标吗?加载地图时,您是想将标记从位置 A 移动到位置 B,还是只想为其设置动画?
  • 我只想在没有动画的情况下将标记从位置 A 移动到位置 B。这是一个房地产网站,我不想显示房产的真实位置。谢谢你,马丁。
  • 喜欢this?

标签: google-maps google-maps-api-3 google-maps-markers geocoding


【解决方案1】:

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

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

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

【讨论】:

  • 感谢 Wises,但我希望标记在放置在地图上之前自动移动
【解决方案2】:

只需移动你的标记:

function moveMarker( map, marker ) {

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

};

【讨论】:

  • 谢谢,但是我怎样才能从使用地理编码器获得的原始位置自动计算新坐标:geocoder.geocode({'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); } }
【解决方案3】:

我终于找到了解决办法。 我没有从地址中使用反向地理编码,而是在数据库中获取坐标并像这样应用它们:

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);

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    相关资源
    最近更新 更多