dangnh-search-lib
v1.0.1
Published
A versatile TypeScript library for geocoding and address search using multiple providers.
Downloads
133
Readme
address-search-lib
A versatile TypeScript library for geocoding and address search using multiple providers.
Features
- Support for multiple geocoding providers:
- Google Maps
- Photon
- Nominatim (OpenStreetMap)
- LocationIQ
- Flexible API for easy integration
- TypeScript support
Installation
Install the package using npm
bash npm install address-search-lib
Usage
Basic Usage
typescript
import { AddressSearch } from 'address-search-lib'; const addressSearch = new AddressSearch(); // Search using the default provider (Nominatim) addressSearch.search('1600 Amphitheatre Parkway, Mountain View, CA') .then(results => console.log(results)) .catch(error => console.error(error));
Specifying a Provider
typescript // Use Google Maps geocoder addressSearch.search('1600 Amphitheatre Parkway, Mountain View, CA', 'gg') .then(results => console.log(results)) .catch(error => console.error(error)); // Use Photon geocoder addressSearch.search('1600 Amphitheatre Parkway, Mountain View, CA', 'pton') .then(results => console.log(results)) .catch(error => console.error(error)); // Use LocationIQ geocoder addressSearch.search('1600 Amphitheatre Parkway, Mountain View, CA', 'iq') .then(results => console.log(results))
Using Individual Geocoders
You can also use the geocoders individually:
typescript import { GoogleGeocoder, NominatimGeocoder, PhotonGeocoder, LocationIQGeocoder } from 'address-search-lib'; const googleGeocoder = new GoogleGeocoder(); const nominatimGeocoder = new NominatimGeocoder(); const photonGeocoder = new PhotonGeocoder(); const locationIQGeocoder = new LocationIQGeocoder('your-api-key'); // Use Google Maps geocoder googleGeocoder.geocode('1600 Amphitheatre Parkway, Mountain View, CA') .then(results => console.log(results)) .catch(error => console.error(error));
Configuration
You can pass options when initializing the AddressSearch
class:
typescript const options = { googleOptions: { headless: false, timeout: 60000 }, locationIQKey: 'your-locationiq-api-key' }; const addressSearch = new AddressSearch(options);
API Reference
AddressSearch
options
: Optional configuration objectgoogleOptions
: Options for Google Maps geocoderlocationIQKey
: API key for LocationIQplace
: The address or place to search fortype
: The geocoder to use (default: 'nomi')- 'gg': Google Maps
- 'pton': Photon
- 'iq': LocationIQ
- 'nomi': Nominatim
GeocodingResult
The GeocodingResult
interface represents the structure of the geocoding results
Dependencies
- axios
- puppeteer-extra
- puppeteer-extra-plugin-stealth
License
This project is licensed under the MIT License.