Esri / esri-leaflet-geocoder

helpers for using the ArcGIS World Geocoding Service in Leaflet
http://esri.github.io/esri-leaflet/examples/geocoding-control.html
Apache License 2.0
246 stars 101 forks source link

Update documentation to include examples of ES6-style imports (`import * as .... from 'esri-leaflet-geocoder'`) #293

Open TannerJuby1 opened 2 years ago

TannerJuby1 commented 2 years ago

I installed this project via npm as well as it's types for my Gatsby (react) project, but I am unable to use it thru the leaflet package as the documentation suggests.

I ran npm i esri-leaflet-geocoder --save and npm i @types/esri-leaflet-geocoder --save which installed properly, but when I go to use the geocode like the documentation suggests:

L.esri.Geocoder.reverseGeocode(...

I get a runtime error that Geocoder is undefined.

I can get around this by importing the package directly:

import * as ELG from 'esri-leaflet-geocoder'

ELG.reverseGeocode(....

However, when I do it this way. I run into issues with the api key that I've opened another issue about

gavinr commented 2 years ago

Hi, I think that import style is correct when using ES6 import style.

TannerJuby1 commented 2 years ago

Import style works, but the way the documentation shows to use it does not.

gavinr commented 2 years ago

Hi, thanks for the feedback. Which documentation are you referring to?

TannerJuby1 commented 2 years ago

Under the API Reference section of this repo's README, it shows to use L.esri.Geocoding. indicating it extends the L import of Leaflet, but it does not. You have to import it and use it separately

gavinr commented 2 years ago

Thanks...

  1. if you import using the script tag (for example, <script src="https://unpkg.com/esri-leaflet-geocoder"></script>), then you access via L.esri.Geocoding....
  2. if you import using the newer import * as .... from 'esri-leaflet-geocoder' then you'd refer to it directly using the imported name.

Either are valid, but the documentation focuses on number 1 since that is the pattern that most Leaflet users are following. I think your confusion is that number 2 is not really mentioned in the documentation, and that's a fair critique, as more people start to use the import... style. I'll rename this issue so that we can tackle that documentation update. PRs welcome!

gavinr-maps commented 3 months ago

Note that before we document using this library with ESM, we'll need to get the other Esri Leaflet libraries working with ESM here: https://github.com/Esri/esri-leaflet/issues/1386

So if anyone has time to look into that one ^ it would be much appreciated.

shakyad commented 3 months ago

Any update on this one as I am unable to use the geocoder with esri-leaflet-vector?

gavinr-maps commented 3 months ago

@shakyad please see my response in the other thread: https://github.com/Esri/esri-leaflet-geocoder/issues/318#issuecomment-2312607259