Convert Figma logo to code with AI

sebholstein logoangular-google-maps

Angular 2+ Google Maps Components

2,027
816
2,027
61

Top Related Projects

AngularJS directives for the Google Maps Javascript API

Interactive, thoroughly customizable maps in the browser, powered by vector tiles and WebGL

41,217

πŸƒ JavaScript library for mobile-friendly interactive maps πŸ‡ΊπŸ‡¦

OpenLayers

Quick Overview

Angular Google Maps (AGM) is a library that provides a set of Angular components and directives to integrate Google Maps into Angular applications. It offers a simple way to add maps, markers, info windows, and other Google Maps features to Angular projects with minimal configuration.

Pros

  • Easy integration with Angular applications
  • Supports most Google Maps features and functionalities
  • TypeScript support for better type checking and autocompletion
  • Regular updates and active community support

Cons

  • Requires a Google Maps API key, which may have usage limits and costs
  • Limited customization options compared to using the Google Maps JavaScript API directly
  • Some advanced features may require additional setup or custom implementations
  • Documentation could be more comprehensive for complex use cases

Code Examples

  1. Adding a simple map to an Angular component:
import { Component } from '@angular/core';

@Component({
  selector: 'app-map',
  template: `
    <agm-map [latitude]="lat" [longitude]="lng" [zoom]="zoom">
    </agm-map>
  `,
  styles: ['agm-map { height: 300px; }']
})
export class MapComponent {
  lat = 51.678418;
  lng = 7.809007;
  zoom = 8;
}
  1. Adding a marker to the map:
import { Component } from '@angular/core';

@Component({
  selector: 'app-map-with-marker',
  template: `
    <agm-map [latitude]="lat" [longitude]="lng" [zoom]="zoom">
      <agm-marker [latitude]="lat" [longitude]="lng"></agm-marker>
    </agm-map>
  `,
  styles: ['agm-map { height: 300px; }']
})
export class MapWithMarkerComponent {
  lat = 51.678418;
  lng = 7.809007;
  zoom = 8;
}
  1. Adding an info window to a marker:
import { Component } from '@angular/core';

@Component({
  selector: 'app-map-with-info-window',
  template: `
    <agm-map [latitude]="lat" [longitude]="lng" [zoom]="zoom">
      <agm-marker [latitude]="lat" [longitude]="lng">
        <agm-info-window>
          <strong>InfoWindow content</strong>
        </agm-info-window>
      </agm-marker>
    </agm-map>
  `,
  styles: ['agm-map { height: 300px; }']
})
export class MapWithInfoWindowComponent {
  lat = 51.678418;
  lng = 7.809007;
  zoom = 8;
}

Getting Started

  1. Install the package:

    npm install @agm/core
    
  2. Import the AgmCoreModule in your app.module.ts:

    import { AgmCoreModule } from '@agm/core';
    
    @NgModule({
      imports: [
        AgmCoreModule.forRoot({
          apiKey: 'YOUR_GOOGLE_MAPS_API_KEY'
        })
      ],
      // ...
    })
    export class AppModule { }
    
  3. Use the agm-map component in your templates as shown in the code examples above.

Competitor Comparisons

AngularJS directives for the Google Maps Javascript API

Pros of angular-google-maps

  • More comprehensive documentation and examples
  • Actively maintained with regular updates
  • Larger community support and contributions

Cons of angular-google-maps

  • Steeper learning curve due to more complex API
  • Heavier package size, which may impact performance
  • Some users report occasional stability issues

Code Comparison

angular-google-maps:

<ui-gmap-google-map center='map.center' zoom='map.zoom'>
  <ui-gmap-marker coords="marker.coords" options="marker.options"></ui-gmap-marker>
</ui-gmap-google-map>

angular-google-maps:

<sebm-google-map [latitude]="lat" [longitude]="lng" [zoom]="zoom">
  <sebm-google-map-marker [latitude]="lat" [longitude]="lng"></sebm-google-map-marker>
</sebm-google-map>

The angular-google-maps library offers a more declarative approach with nested components, while angular-google-maps uses a simpler, attribute-based syntax. The former provides more flexibility but may require more setup, while the latter is more straightforward for basic use cases.

Both libraries serve the purpose of integrating Google Maps with Angular applications, but angular-google-maps offers more features and customization options at the cost of increased complexity. The choice between the two depends on the specific requirements of your project and your familiarity with Angular and Google Maps integration.

Interactive, thoroughly customizable maps in the browser, powered by vector tiles and WebGL

Pros of mapbox-gl-js

  • More comprehensive and feature-rich mapping library
  • Better performance for large datasets and complex visualizations
  • Supports 3D terrain and custom map styles

Cons of mapbox-gl-js

  • Steeper learning curve due to more advanced features
  • Requires a Mapbox account and API key for full functionality
  • May be overkill for simple mapping needs

Code Comparison

mapbox-gl-js:

mapboxgl.accessToken = 'YOUR_MAPBOX_ACCESS_TOKEN';
const map = new mapboxgl.Map({
  container: 'map',
  style: 'mapbox://styles/mapbox/streets-v11',
  center: [-74.5, 40],
  zoom: 9
});

angular-google-maps:

@Component({
  selector: 'app-map',
  template: '<agm-map [latitude]="lat" [longitude]="lng"></agm-map>'
})
export class MapComponent {
  lat: number = 40;
  lng: number = -74.5;
}

Summary

mapbox-gl-js offers more advanced features and better performance for complex mapping needs, while angular-google-maps provides a simpler integration for Angular applications using Google Maps. The choice between the two depends on the specific requirements of your project, such as the level of customization needed, performance expectations, and integration with existing frameworks.

41,217

πŸƒ JavaScript library for mobile-friendly interactive maps πŸ‡ΊπŸ‡¦

Pros of Leaflet

  • Lightweight and mobile-friendly, with a smaller footprint than Google Maps
  • Open-source with a large community and extensive plugin ecosystem
  • More customizable and flexible for advanced mapping needs

Cons of Leaflet

  • Requires more setup and configuration compared to angular-google-maps
  • May need additional plugins or libraries for certain features that are built-in with Google Maps
  • Less seamless integration with Angular compared to angular-google-maps

Code Comparison

Leaflet:

var map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    attribution: 'Β© OpenStreetMap contributors'
}).addTo(map);

angular-google-maps:

@Component({
  selector: 'app-map',
  template: '<google-map [center]="center" [zoom]="zoom"></google-map>'
})
export class MapComponent {
  center: google.maps.LatLngLiteral = {lat: 51.505, lng: -0.09};
  zoom = 13;
}

The Leaflet example shows direct JavaScript usage, while angular-google-maps demonstrates Angular-specific implementation. Leaflet requires more manual setup but offers greater flexibility, while angular-google-maps provides a more Angular-integrated approach with simpler initial setup.

OpenLayers

Pros of OpenLayers

  • More comprehensive and feature-rich mapping library
  • Supports a wider range of data formats and projections
  • Better suited for complex GIS applications and custom map implementations

Cons of OpenLayers

  • Steeper learning curve due to its extensive API and capabilities
  • Larger file size, which may impact load times for simpler applications
  • Less seamless integration with Angular compared to angular-google-maps

Code Comparison

OpenLayers:

import Map from 'ol/Map';
import View from 'ol/View';
import TileLayer from 'ol/layer/Tile';
import OSM from 'ol/source/OSM';

const map = new Map({
  target: 'map',
  layers: [new TileLayer({ source: new OSM() })],
  view: new View({ center: [0, 0], zoom: 2 })
});

angular-google-maps:

import { AgmCoreModule } from '@agm/core';

@NgModule({
  imports: [
    AgmCoreModule.forRoot({ apiKey: 'YOUR_API_KEY' })
  ]
})
export class AppModule { }

OpenLayers offers more flexibility and control over map creation, while angular-google-maps provides a more Angular-specific implementation with simpler setup for Google Maps integration.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

AGM - Angular Google Maps

AGM - Angular Google Maps

Angular components for Google Maps. (Previously known as angular2-google-maps)


Website | Demo | Twitter | Chat | API Documentation


Build Status Questions?: join the chat npm version supported angular versions: 9+


Packages

This project is a mono repo and hosts multiple packages:

PackageDownloads
@agm/core@agm/core
@agm/snazzy-info-window@agm/snazzy-info-window
@agm/markerclusterer@agm/markerclusterer
@agm/drawing@agm/drawing

Playing with AGM (Angular Google Maps)

If you just want to play with AGM and don't want to set up a full project, you can use the following Plunker. It has all the dependencies to play with Angular, Typescript and of course AGM:

Β» Play with Angular Google Maps on Stackblitz

Installation

AGM gets shipped via the Node Package Manager. So make sure that you have NodeJS installed.
You can install the package with the following command:

npm install @agm/core

You should also checkout the Getting started guide for further information.

NPM DownloadsLast 30 Days