26

I am using OSM with Leaflet API. Now I want to get the lat and long of a clicked location. I meant something similar to this. ex: http://openlayers.org/dev/examples/click.html

map.events.register("click", map, function(e) {
            var position = map.getLonLatFromPixel(e.xy);
                alert("Lat, Lon : "+position.lon.toFixed(3),position.lat.toFixed(3));

        });

This code in OpenLayers helps to get the lat ,long values... looking for something similar using Leaflet...

0

2 Answers 2

72

You can easily get click events using the map's 'on' event subscription method:

map.on('click', function(e) {
    alert("Lat, Lon : " + e.latlng.lat + ", " + e.latlng.lng)
});
0
-1

Try Reverse geocoding with esri-leaflet and openstreetmap tile.

var map = L.map('map').setView([0,0], 2);
  L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="https://osm.org/copyright">OpenStreetMap</a> contributors'
  }).addTo(map);

  var geocodeService = L.esri.Geocoding.geocodeService();

  map.on('click', function (e) {
    geocodeService.reverse().latlng(e.latlng).run(function (error, result) {
      if (error) {
        return;
      }
      alert(result.latlng)
    });
  });

Source Code: https://github.com/CTRLTAB-WORKS/reverse-geocoding

1
  • A bit contradictory to provide a proprietary library (esri) with much more complicated solution than the native open source Leaflet functions provided by the other answer.... almost 8 years after.
    – Cyrille
    Commented Feb 27, 2023 at 7:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.