Javascript 谷歌标记上的显示按钮拖动

Javascript 谷歌标记上的显示按钮拖动,javascript,google-maps-api-3,draggable,Javascript,Google Maps Api 3,Draggable,不知是否有人能帮助我 我正在使用下面的代码来反转地理代码地址详细信息,在本例中,从OS Grid Ref开始 也许有人能告诉我,我将如何进行,包括代码,当标记被拖动时,一个名为“RegeneratosGridRef”的按钮将出现在表单上 (function reversegeocodeosgridref() { var map, geocoder, latlng, marker; window.onload = function() { var myOpti

不知是否有人能帮助我

我正在使用下面的代码来反转地理代码地址详细信息,在本例中,从OS Grid Ref开始

也许有人能告诉我,我将如何进行,包括代码,当标记被拖动时,一个名为“RegeneratosGridRef”的按钮将出现在表单上

(function reversegeocodeosgridref() {

    var map, geocoder, latlng, marker;

    window.onload = function() {

        var myOptions = {
            zoom: 6,
            center: new google.maps.LatLng(54.312195845815246, -4.45948481875007),
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            mapTypeControl: true,
            mapTypeControlOptions: {
                style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
                position: google.maps.ControlPosition.TOP_RIGHT
            },
            navigationControl: true,
            navigationControlOptions: {
                style: google.maps.NavigationControlStyle.ZOOM_PAN,
                position: google.maps.ControlPosition.TOP_LEFT
            },
            scaleControl: true,
            scaleControlOptions: {
                position: google.maps.ControlPosition.BOTTOM_LEFT
            }
        };

        map = new google.maps.Map(document.getElementById('map'), myOptions);

        var form = document.getElementById('searchforlocationosgridref');

        form.onsubmit = function() {

            var lat = document.getElementById('osgb36lat').value;
            var lng = document.getElementById('osgb36lon').value;

            var latlng = new google.maps.LatLng(lat, lng);

            getAddress(latlng);

            return false;
        }

    }

    function geocodePosition(pos) {
        geocoder.geocode({
            latLng: pos
        },

        function(responses) {
            if (responses && responses.length > 0) {
                updateMarkerAddress(responses[0].formatted_address);
            } else {
                updateMarkerAddress('Cannot determine address at this location.');
            }
        });
    }

    function updateMarkerAddress(str) {
        document.getElementById('returnedaddress').value = str;
    }

    function getAddress(latlng) {

        if (!geocoder) {
            geocoder = new google.maps.Geocoder();
        }

        geocoder.geocode({
            'latLng': latlng
        }, function(results, status) {

            if (status == google.maps.GeocoderStatus.OK) {

                if (results[0]) {

                    map.setCenter(results[0].geometry.location);
                    if (!marker) {
                        map.setZoom(16);
                        marker = new google.maps.Marker({
                            map: map,
                            draggable: true
                        });
                    }
                }

                marker.setPosition(results[0].geometry.location);

                google.maps.event.addListener(marker, function() {
                    updateMarkerAddress;
                });

                google.maps.event.addListener(marker, 'dragend', function() {
                    geocodePosition(marker.getPosition());
                    document.getElementById('osgb36lat').value = marker.position.lat();
                    document.getElementById('osgb36lon').value = marker.position.lng();

                    var point = marker.getPosition();
                    map.panTo(point);
                });

                latLng = [marker.position.lat(), marker.position.lng()].join(', ');
                geocodePosition(marker.getPosition());

                document.getElementById('returnedaddress').value = results[0].formatted_address;
            }
        })
    }
})();
非常感谢和亲切的问候


Chris

在标记
dragend
事件中添加一行,该行将显示按钮

在dragend事件中:

document.getElementById('regenerateosgridref').style.display = 'block';

而不是在我的表单中添加另一个按钮。我添加了一些Javascript代码,可以在拖动标记时更新操作系统网格引用。

您好,非常感谢您抽出时间回复我的帖子。我试过这个,但不幸的是它不起作用。按钮不会以隐藏状态启动。你有什么想法吗?亲切的问候。它是怎么开始的?你的按钮在哪里?嗨,按钮在我的HTML表单中,当标记被拖动后,它将重新计算操作系统网格引用。亲切的问候。如果它在表单上并且没有隐藏,那么它就已经可见了。嗨,亚历克斯。是的,我明白你的意思。我一直在查看我的表单以及用户查看表单的方式。我决定要做的是运行一些代码,允许操作系统网格引用随着标记的拖动而改变。这样看起来更整洁,我想对我的用户来说会更容易。非常感谢您的时间和麻烦。你好,克里斯