92

I'm struggling to find a very simple example of how to add a marker(s) to a Google Map when a user left clicks on the map.

6 Answers 6

177

After much further research, i managed to find a solution.

google.maps.event.addListener(map, 'click', function(event) { placeMarker(event.latLng); }); function placeMarker(location) { var marker = new google.maps.Marker({ position: location, map: map }); } 
Sign up to request clarification or add additional context in comments.

Comments

49

In 2017, the solution is:

map.addListener('click', function(e) { placeMarker(e.latLng, map); }); function placeMarker(position, map) { var marker = new google.maps.Marker({ position: position, map: map }); map.panTo(position); } 

1 Comment

I'm still getting upvoted in 2022, so I guess this is still working 😁
22

This is actually a documented feature, and can be found here

// This event listener calls addMarker() when the map is clicked. google.maps.event.addListener(map, 'click', function(e) { placeMarker(e.latLng, map); }); function placeMarker(position, map) { var marker = new google.maps.Marker({ position: position, map: map }); map.panTo(position); } 

Comments

19

To make the user able to add only once, and move the marker; You can set the marker on first click and then just change the position on subsequent clicks.

var marker; google.maps.event.addListener(map, 'click', function(event) { placeMarker(event.latLng); }); function placeMarker(location) { if (marker == null) { marker = new google.maps.Marker({ position: location, map: map }); } else { marker.setPosition(location); } } 

Comments

6

Currently the method to add the listener to the map would be

map.addListener('click', function(e) { placeMarker(e.latLng, map); }); 

And not

google.maps.event.addListener(map, 'click', function(e) { placeMarker(e.latLng, map); }); 

Reference

Comments

-1

The best method to add marker 'on-click' is:

map.addListener('click', function(event) { addMarker(event.latLng); }); 

1 Comment

This simply repeats all the other answers.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.