npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@geoapify/angular-geocoder-autocomplete

v3.0.1

Published

Angular component for the Geoapify Geocoder Autocomplete library

Readme

Angular Geocoder Autocomplete

Docs

The Angular Geocoder Autocomplete component integrates the core @geoapify/geocoder-autocomplete library into Angular. It provides an easy-to-use Angular wrapper for the Geoapify Geocoding Autocomplete API, allowing developers to add advanced, localized, and flexible address search functionality to their applications.

Angular Geocoder Autocomplete Screenshot

Table of Contents

Features

  • Simple Angular integration with a ready-to-use component.
  • Fast, responsive incremental search with built-in debounce.
  • Localized suggestions with support for multiple languages and country filters.
  • Flexible configuration: biasing, filtering, and bounding boxes.
  • Customizable design: easily style or theme your component.
  • Accessible with keyboard navigation and ARIA support.
  • Rich results including coordinates, structured address, and metadata.
  • Compatible with Angular 15–20.

Quick Start

You’ll need a Geoapify API key to use the component.

  1. Register for a free account at myprojects.geoapify.com.
  2. Create a project to obtain your API key.
  3. You can start for free — Geoapify offers a generous Freemium plan.

1. Install

npm install @geoapify/geocoder-autocomplete @geoapify/angular-geocoder-autocomplete
# or
yarn add @geoapify/geocoder-autocomplete @geoapify/angular-geocoder-autocomplete

Get a Geoapify API key: https://myprojects.geoapify.com

2. Import the module

// app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { GeoapifyGeocoderAutocompleteModule } from '@geoapify/angular-geocoder-autocomplete';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    GeoapifyGeocoderAutocompleteModule.withConfig('YOUR_GEOAPIFY_API_KEY')
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

Tip: Store your API key in environment.ts and reference it as environment.geoapifyKey for better maintainability.

3. Add styles

Option A: angular.json

"styles": [
  "node_modules/@geoapify/geocoder-autocomplete/styles/round-borders.css",
  "src/styles.scss"
],
...

Option B: global stylesheet (e.g., styles.scss)

@import "~@geoapify/geocoder-autocomplete/styles/minimal.css";

Themes: minimal, round-borders, minimal-dark, round-borders-dark.

4. Use the component

Basic:

<geoapify-geocoder-autocomplete></geoapify-geocoder-autocomplete>

With events and common options:

<geoapify-geocoder-autocomplete
  placeholder="Search for an address"
  [lang]="'en'"
  [limit]="8"
  [addDetails]="true"
  (placeSelect)="onPlaceSelected($event)"
  (suggestionsChange)="onSuggestionsChange($event)">
</geoapify-geocoder-autocomplete>
onPlaceSelected(feature: any) {
  console.log('Selected:', feature?.properties?.formatted);
}

onSuggestionsChange(list: any[]) {
  console.log('Suggestions:', list);
}

Compatibility

| @geoapify/angular-geocoder-autocomplete | Angular Version | | --------------------------------------- | --------------- | | 1.0.x – 1.3.x | 9.x–14.x | | 2.0.0 – 2.0.2 | 15.x–18.x | | 2.0.3 - 2.2.x | 19.x–20.x | | 3.0.1+ | 21.x |

If you prefer to use the library directly without Angular bindings, check the Standalone Usage section.

Documentation

Full documentation — including configuration options, detailed examples, and migration instructions — is available online at:

View Full Documentation

On the documentation site you’ll find:

  • A guided Quick Start to get the component running in minutes.
  • A complete API Reference coverage of all @Input() and @Output() properties.
  • A dedicated Examples section with real-world scenarios (filters, biasing, category search, hooks).
  • A Migration Guide for versions 1.x → 2.x (and beyond).
  • Guides for Standalone Usage of the underlying @geoapify/geocoder-autocomplete library.

The component includes many options for configuration and customization. Below are the most commonly used properties that cover typical address autocomplete use cases:

| Property | Direction | Description | | --------------------- | --------- | --------------------------------------------------------------------------------- | | placeholder | Input | Sets the placeholder text for the input field. | | type | Input | Defines the type of location to search for — e.g. city, street, or amenity. | | lang | Input | Sets the language of suggestions and results. | | limit | Input | Limits the number of suggestions displayed. | | debounceDelay | Input | Adds a short delay before sending requests, improving performance. | | filterByCountryCode | Input | Restricts search results to selected countries. | | biasByProximity | Input | Prioritizes results near a specific location (latitude/longitude). | | addDetails | Input | Returns detailed information such as boundaries and place metadata. | | skipIcons | Input | Hides icons in the suggestion list for a minimal look. | | placeSelect | Output | Triggered when a user selects an address from suggestions. | | suggestionsChange | Output | Emits updated suggestions while typing. | | userInput | Output | Fires on each user input change. |

Examples

1. Basic Address Search

<geoapify-geocoder-autocomplete
  placeholder="Search for an address"
  (placeSelect)="onPlaceSelected($event)">
</geoapify-geocoder-autocomplete>
onPlaceSelected(place: any) {
  console.log('Selected place:', place?.properties?.formatted);
}

Used properties: placeholder, placeSelect

2. Restrict Results to Specific Country

<geoapify-geocoder-autocomplete
  [filterByCountryCode]="['US']"
  (placeSelect)="onPlaceSelected($event)">
</geoapify-geocoder-autocomplete>

Restricts suggestions to a list of countries using ISO country codes.

Used properties: filterByCountryCode, placeSelect

3. Limit Search to Area (Berlin Example)

<geoapify-geocoder-autocomplete
  [filterByRect]="{ lon1: 13.0884, lat1: 52.3383, lon2: 13.7611, lat2: 52.6755 }"
  (placeSelect)="onPlaceSelected($event)">
</geoapify-geocoder-autocomplete>

This configuration restricts search results to the Berlin area.

Used properties: filterByRect, placeSelect

4. Bias Results by User Location

ngOnInit() {
  navigator.geolocation.getCurrentPosition(pos => {
    this.biasByProximity = { lon: pos.coords.longitude, lat: pos.coords.latitude };
  });
}
<geoapify-geocoder-autocomplete
  [biasByProximity]="biasByProximity"
  (placeSelect)="onPlaceSelected($event)">
</geoapify-geocoder-autocomplete>

Prioritizes nearby results without strictly limiting the search area.

Used properties: biasByProximity, placeSelect

5. Using Hooks for Custom Input and Suggestions

<geoapify-geocoder-autocomplete
  [preprocessingHook]="preprocessInput"
  [suggestionsFilter]="filterSuggestions">
</geoapify-geocoder-autocomplete>
preprocessInput(value: string): string {
  return `${value}, Berlin`;
}

filterSuggestions(suggestions: any[]): any[] {
  return suggestions.filter(s => s.properties.result_type === 'street');
}

Used properties: preprocessingHook, suggestionsFilter

6. Add Details for Selected Place

<geoapify-geocoder-autocomplete
  [addDetails]="true"
  placeholder="Search for a city"
  (placeSelect)="onPlaceSelected($event)">
</geoapify-geocoder-autocomplete>

Adds boundary or geometry data (where available) to the selected feature.

Used properties: addDetails, placeSelect

7. Enable Category (POI) Search

<geoapify-geocoder-autocomplete
  [addCategorySearch]="true"
  [showPlacesByCategoryList]="true"
  [placesByCategoryFilter]="{ categories: ['cafe', 'restaurant'] }"
  (placeByCategorySelect)="onPoiSelected($event)">
</geoapify-geocoder-autocomplete>

Displays nearby Points of Interest (POIs) below the input field, filtered by category.

Used properties: addCategorySearch, showPlacesByCategoryList, placesByCategoryFilter, placeByCategorySelect

8. Show Loading Indicator While Searching

<div class="autocomplete-wrapper">
  <geoapify-geocoder-autocomplete
    (requestStart)="loading = true"
    (requestEnd)="loading = false"
    (placeSelect)="onPlaceSelected($event)">
  </geoapify-geocoder-autocomplete>

  <div *ngIf="loading" class="loading-spinner">Loading...</div>
</div>

Used properties: requestStart, requestEnd

9. Clear Selection

<geoapify-geocoder-autocomplete
  (clear)="onClear()"
  placeholder="Search address">
</geoapify-geocoder-autocomplete>
onClear() {
  console.log('Selection cleared');
}

Used properties: clear

10. Combine Filters and Bias

<geoapify-geocoder-autocomplete
  [filterByCountryCode]="['DE']"
  [biasByProximity]="{ lon: 13.405, lat: 52.52 }"
  [addDetails]="true"
  (placeSelect)="onPlaceSelected($event)">
</geoapify-geocoder-autocomplete>

Combines multiple parameters — country restriction, local bias, and detailed output — for refined search results.

Used properties: filterByCountryCode, biasByProximity, addDetails, placeSelect

Learn More

Contributions and Support

We welcome feedback, bug reports, and feature suggestions to improve the library.

Contributing

If you’d like to contribute:

  1. Fork the repository on GitHub.
  2. Create a feature branch (git checkout -b feature/your-feature-name).
  3. Make your changes and ensure the code follows Angular and TypeScript best practices.
  4. Submit a pull request with a clear description of your changes.

Before contributing, please review the existing issues and documentation to avoid duplicates.

Reporting Issues

If you encounter a bug or unexpected behavior, please open an issue on GitHub. When submitting an issue, include:

  • A short description of the problem
  • Steps to reproduce
  • Expected vs. actual results
  • Angular and package versions

Getting Support