Convert Figma logo to code with AI

angular-ui logoangular-google-maps

AngularJS directives for the Google Maps Javascript API

2,520
1,070
2,520
337

Top Related Projects

41,217

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

12,182

WebGL2 powered visualization framework

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

OpenLayers

React.js Google Maps integration component

Quick Overview

Angular-Google-Maps is an AngularJS directive that integrates Google Maps into Angular applications. It provides a set of directives and services to easily embed Google Maps and add various map features like markers, polygons, and info windows within Angular projects.

Pros

  • Seamless integration with AngularJS, allowing for easy use of Google Maps within Angular applications
  • Extensive set of directives and services for various map features
  • Active community and regular updates
  • Good documentation and examples

Cons

  • Limited compatibility with newer versions of Angular (2+)
  • Performance can be affected when dealing with a large number of markers or complex map operations
  • Learning curve for developers new to both AngularJS and Google Maps API
  • Some reported issues with certain edge cases and complex scenarios

Code Examples

  1. Basic map initialization:
angular.module('myApp', ['uiGmapgoogle-maps'])
.config(function(uiGmapGoogleMapApiProvider) {
    uiGmapGoogleMapApiProvider.configure({
        key: 'YOUR_API_KEY',
        v: '3.exp'
    });
})
.controller('MapCtrl', function($scope) {
    $scope.map = { center: { latitude: 40.1451, longitude: -99.6680 }, zoom: 4 };
});
  1. Adding a marker:
$scope.marker = {
    id: 1,
    coords: {
        latitude: 40.1451,
        longitude: -99.6680
    },
    options: { draggable: true }
};
  1. Creating a polygon:
$scope.polygon = {
    id: 1,
    path: [
        { latitude: 40.1451, longitude: -99.6680 },
        { latitude: 41.1451, longitude: -98.6680 },
        { latitude: 42.1451, longitude: -97.6680 }
    ],
    stroke: { color: '#6060FB', weight: 3 },
    editable: true,
    draggable: true,
    geodesic: false,
    visible: true
};

Getting Started

  1. Install the package:

    npm install angular-google-maps
    
  2. Include the script in your HTML:

    <script src="node_modules/angular-google-maps/dist/angular-google-maps.min.js"></script>
    
  3. Add the module to your Angular app:

    angular.module('myApp', ['uiGmapgoogle-maps'])
    
  4. Configure the Google Maps API key:

    .config(function(uiGmapGoogleMapApiProvider) {
        uiGmapGoogleMapApiProvider.configure({
            key: 'YOUR_API_KEY',
            v: '3.exp'
        });
    })
    
  5. Use the directive in your HTML:

    <ui-gmap-google-map center='map.center' zoom='map.zoom'></ui-gmap-google-map>
    

Competitor Comparisons

41,217

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

Pros of Leaflet

  • Lightweight and fast, with a smaller footprint than Google Maps
  • More customizable and flexible, allowing for easier integration of custom map tiles and data sources
  • Open-source with a large community, providing extensive plugins and extensions

Cons of Leaflet

  • Less comprehensive out-of-the-box features compared to Google Maps
  • May require more setup and configuration for advanced functionality
  • Limited built-in support for some advanced mapping features (e.g., 3D maps, Street View)

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:

$scope.map = {
    center: { latitude: 51.505, longitude: -0.09 },
    zoom: 13
};

Both libraries offer straightforward ways to initialize maps, but Leaflet's approach is more explicit in terms of tile layer configuration. angular-google-maps leverages Angular's two-way data binding for map properties, while Leaflet uses a more traditional JavaScript approach.

12,182

WebGL2 powered visualization framework

Pros of deck.gl

  • High-performance WebGL-based visualization library for large-scale geospatial data
  • Supports a wide range of layer types and advanced rendering techniques
  • Seamless integration with React and other modern web frameworks

Cons of deck.gl

  • Steeper learning curve due to its more complex API and WebGL-based architecture
  • May be overkill for simpler mapping needs or projects with limited data visualization requirements

Code Comparison

deck.gl:

import {Deck} from '@deck.gl/core';
import {GeoJsonLayer} from '@deck.gl/layers';

new Deck({
  layers: [new GeoJsonLayer({id: 'geojson', data: GEOJSON_DATA})],
  initialViewState: {latitude: 37.8, longitude: -122.4, zoom: 8}
});

angular-google-maps:

<ui-gmap-google-map center='map.center' zoom='map.zoom'>
  <ui-gmap-marker ng-repeat="marker in markers" coords="marker.coords" idkey="marker.id">
  </ui-gmap-marker>
</ui-gmap-google-map>

Summary

deck.gl is a powerful WebGL-based visualization library for large-scale geospatial data, offering high performance and advanced rendering capabilities. It integrates well with modern web frameworks but has a steeper learning curve. angular-google-maps, on the other hand, is more focused on integrating Google Maps with AngularJS, providing a simpler API for basic mapping needs. The choice between the two depends on the project's requirements, data complexity, and desired level of customization.

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

Pros of mapbox-gl-js

  • More flexible and customizable, allowing for advanced styling and interactions
  • Better performance for large datasets and complex visualizations
  • Supports 3D mapping and terrain rendering

Cons of mapbox-gl-js

  • Requires more setup and configuration compared to angular-google-maps
  • May have a steeper learning curve for developers new to mapping libraries
  • Potentially higher costs for high-volume usage

Code Comparison

angular-google-maps:

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

mapbox-gl-js:

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

The angular-google-maps example shows a declarative approach using Angular directives, while mapbox-gl-js uses a more imperative JavaScript approach. mapbox-gl-js requires an access token and offers more granular control over map initialization. Both libraries allow for adding markers and other map features, but mapbox-gl-js provides more extensive customization options for styling and interactivity.

OpenLayers

Pros of OpenLayers

  • More comprehensive and feature-rich mapping library
  • Supports a wider range of data formats and projections
  • Open-source with a larger community and more frequent updates

Cons of OpenLayers

  • Steeper learning curve due to its extensive API
  • Larger file size, which may impact page load times
  • Less seamless integration with Angular applications

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 { }

<agm-map [latitude]="lat" [longitude]="lng">
  <agm-marker [latitude]="lat" [longitude]="lng"></agm-marker>
</agm-map>

OpenLayers offers more flexibility and control over map rendering, while angular-google-maps provides a more Angular-friendly approach with simpler integration. OpenLayers requires more setup but offers greater customization, whereas angular-google-maps focuses on ease of use within Angular applications.

React.js Google Maps integration component

Pros of react-google-maps

  • Better TypeScript support and type definitions
  • More frequent updates and active maintenance
  • Easier integration with React ecosystem and hooks

Cons of react-google-maps

  • Steeper learning curve for developers new to React
  • Less comprehensive documentation compared to angular-google-maps
  • Smaller community and fewer third-party extensions

Code Comparison

angular-google-maps:

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

react-google-maps:

<GoogleMap defaultZoom={8} defaultCenter={{ lat: -34.397, lng: 150.644 }}>
  <Marker position={{ lat: -34.397, lng: 150.644 }} />
</GoogleMap>

The react-google-maps example demonstrates a more declarative and React-like approach, while angular-google-maps uses a directive-based syntax typical of AngularJS. The react-google-maps code is generally more concise and easier to read for developers familiar with React.

Both libraries provide similar functionality, but react-google-maps is better suited for modern React applications, while angular-google-maps is more appropriate for AngularJS projects. The choice between them largely depends on the framework being used and the specific requirements of the project.

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

Project No longer actively maintained

This repo is heavily outdated and there are no maintainers. Therefore issue tracking has been disabled.

With angular 2 and other competing projects we have decided to announce that this project is no longer activley maintained. If someone desires to take over the project please contact any of the admins.

As a warning this project is not activley watched by the admins and is checked here and there to fix any major issues. Therefore if something is major, contact someone directly via mentioning a users name/alias (will notify the user/admin).

Alternatives:

angular-google-maps

AngularJS directives for Google Maps DependenciesΒ  DependenciesΒ 

Builds:

  • Master (2.3.X): Build Status

  • 2.2.X: Build Status

  • 2.1.X: Build Status

  • 2.0.X: Build Status

task board: Stories in Ready

Gitter chat

Β 

NPM


Getting started

This is a set of directives and services for AngularJS ~1.0.7+, ^1.2.2+.

Dependencies

Please always be checking the package.json and bower.json. They are the spoken word and will usually be more up to date than this readme.

Tip use some library which will always pull in your dependencies (no matter what the changes are) to your vendor.js. IE: main-bower-files

Current Dependencies:

Development and or Running the Build

If you plan to hack on the directives or want to run the example, first thing to do is to install NPM dependencies:

npm install && bower install
  • Installing for Meteor application:
meteor add angularui:angular-google-maps
meteor npm install --save angular-google-maps

Building

To build the library after you made changes, simply run grunt:

grunt

If you get errors from jshint or specs, just add the --force argument.

Generating SourceMap(s)

grunt buildAll

This will generate source maps for development (angular-google-maps_dev_mapped.js) (non minified) and source maps to minified (angular-google-maps_dev_mapped.min.js) files. They each have their own corresponding map files. To get the coinciding source files you will need to copy the generated /tmp directory (currently not under scc).

Running the example

To run the example page, just run

grunt example

and open your browser on http://localhost:3000/example.html.

Documentation

The various directives are documented at official site.

Contributing

Filing issues: Prior to submitting an issue:

  • Search open/closed issues, src examples (./examples), gitter, and then google plus community! Again please search!
  • issues w/ plnkrs get attention quicker

Pull Requests (PR) more than welcome! If you're adding new features, it would be appreciated if you would provide some docs about the feature. This can be done either by adding a card to our Waffle.io board, forking the website branch and issuing a PR with the updated documentation page, or by opening an issue for us to add the documentation to the site.

PR's should follow angular git commit conventions.

Branching Scheme

PRS to master are for 2.3.X only.

If you want it rolled into a older release then target your PR to that respective branching name like 2.1.X.

Note: many fixes relevant to 2.0.X can be rolled up into 2.1.X, 2.2.X and 2.3.X

  • master: points to the active targeted next release branch (2.3.X)
  • 2.2.X: latest of 2.2.X
  • 2.1.X: ""
  • 2.0.X: "" ... etc

NPM DownloadsLast 30 Days