【问题标题】:Change google map marker position onclick更改谷歌地图标记位置 onclick
【发布时间】:2018-09-17 03:06:14
【问题描述】:

我想在单击地图时移动我的标记并获取经纬度。 目前,我的地图已显示,但我无法更改标记位置。 我尝试在this 中模仿编码器。

我的参考使用按钮来更改标记的位置。在我的情况下,我需要点击地图。我尝试对其进行修改以适应我的情况,但仍然无法正常工作。

这是我的代码:

jQuery(document).ready(function( $ ) {

        function myMap(lat,long) {
            var myCenter = new google.maps.LatLng(lat,long);
            var mapCanvas = document.getElementById("googleMap");

            var mapOptions = {
                center: myCenter, 
                zoom: 15,
                treetViewControl: false,
                mapTypeControl: false
            };

            var map = new google.maps.Map(mapCanvas, mapOptions);
            var marker = new google.maps.Marker({position:myCenter});
            marker.setMap(map);

            // Zoom to 9 when clicking on marker
            google.maps.event.addListener(marker,'click',function() {
            map.setZoom(9);
            map.setCenter(marker.getPosition());
            });

            //sets variable for lat and long
            $('.lat').text(lat);
            $('.long').text(long);
        }

        function newLocation(newLat,newLng)
        {
            map.setCenter({
                lat : newLat,
                lng : newLng
            });
        }

        google.maps.event.addDomListener(window, 'load', myMap(3.1412,101.68653));


        $(document).ready(function ()
        {
            google.maps.event.addListener(map, 'click', function(event) {
                newLocation(event.myCenter);
            });
        });

    });

【问题讨论】:

    标签: javascript google-maps


    【解决方案1】:

    1) 点击地图并将标记的位置更改为您点击的位置

    var map, marker;
    $(document).ready(function() {
    
        function myMap(lat,long) {
            var myCenter = new google.maps.LatLng(lat,long);
            var mapCanvas = document.getElementById("googleMap");
    
            var mapOptions = {
                center: myCenter, 
                zoom: 15,
                treetViewControl: false,
                mapTypeControl: false
            };
    
            map = new google.maps.Map(mapCanvas, mapOptions);
            marker = new google.maps.Marker(
                {
                    position:myCenter,
                    draggable: true
                }
            );
            marker.setMap(map);
    
            // Zoom to 9 when clicking on marker
            google.maps.event.addListener(marker,'click',function() {
                map.setZoom(9);
                map.setCenter(marker.getPosition());
            });
    
            //sets variable for lat and long
            $('.lat').text(lat);
            $('.long').text(long);
        }
    
        function newLocation(newLat,newLng)
        {
            map.setCenter({
                lat : newLat,
                lng : newLng
            });
        }
    
        google.maps.event.addDomListener(window, 'load', myMap(3.1412,101.68653));
    
    
        $(document).ready(function ()
        {
            // click on map and set you marker to that position
            google.maps.event.addListener(map, 'click', function(event) {
                marker.setPosition(event.latLng);
            });
        });
    
    });
    

    2) 通过拖放更改标记的位置

    var map;
    $(document).ready(function() {
    
        function myMap(lat,long) {
            var myCenter = new google.maps.LatLng(lat,long);
            var mapCanvas = document.getElementById("googleMap");
    
            var mapOptions = {
                center: myCenter, 
                zoom: 15,
                treetViewControl: false,
                mapTypeControl: false
            };
    
            map = new google.maps.Map(mapCanvas, mapOptions);
            var marker = new google.maps.Marker(
                {
                    position:myCenter,
                    draggable: true // set marker draggable
                }
            );
            marker.setMap(map);
    
            // Zoom to 9 when clicking on marker
            google.maps.event.addListener(marker,'click',function() {
                map.setZoom(9);
                map.setCenter(marker.getPosition());
            });
    
            // when dragend, show new lat and lng in console
            google.maps.event.addListener(marker, 'dragend', function(){
                console.log("lat: "+marker.position.lat())
                console.log("lng: "+marker.position.lng())
            })
    
            //sets variable for lat and long
            $('.lat').text(lat);
            $('.long').text(long);
        }
    
        function newLocation(newLat,newLng)
        {
            map.setCenter({
                lat : newLat,
                lng : newLng
            });
        }
    
        google.maps.event.addDomListener(window, 'load', myMap(3.1412,101.68653));
    
    
        $(document).ready(function ()
        {
            google.maps.event.addListener(map, 'click', function(event) {
                newLocation(event.myCenter);
            });
        });
    
    });
    

    【讨论】:

      猜你喜欢
      • 2019-10-24
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      相关资源
      最近更新 更多