All Projects → allenhwkim → Angularjs Google Maps

allenhwkim / Angularjs Google Maps

Licence: mit
The Simplest AngularJS Google Maps V3 Directive

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to Angularjs Google Maps

leaflet-examples
🍁 A collection of examples of leaflet map usage
Stars: ✭ 90 (-94.22%)
Mutual labels:  markers
Wechat Weapp Mapdemo
微信小程序开发mapdemo,地图导航、marker标注
Stars: ✭ 491 (-68.46%)
Mutual labels:  markers
Leaflet.motion
A simple tool to animate polylines and polygons in different way
Stars: ✭ 76 (-95.12%)
Mutual labels:  markers
vue2-leaflet-rotatedmarker
rotated marker plugin extension for vue2-leaflet package
Stars: ✭ 17 (-98.91%)
Mutual labels:  markers
React Native Map Clustering
React Native map clustering both for Android and iOS.
Stars: ✭ 450 (-71.1%)
Mutual labels:  markers
Maplace.js
A Google Maps Javascript plugin for jQuery.
Stars: ✭ 1,021 (-34.43%)
Mutual labels:  markers
angular2-yandex-maps
Angular 2 components Yandex Maps.
Stars: ✭ 26 (-98.33%)
Mutual labels:  markers
Imgnotes
Extension of the jQuery imgViewer plugin to add markers and notes to the image
Stars: ✭ 98 (-93.71%)
Mutual labels:  markers
Prunecluster
Fast and realtime marker clustering for Leaflet
Stars: ✭ 473 (-69.62%)
Mutual labels:  markers
Hrcarmarkeranimation
This android library is helpful for google map marker animation with Smooth turn and movement.
Stars: ✭ 52 (-96.66%)
Mutual labels:  markers
openui5-googlemaps
Openui5 Googlemaps library
Stars: ✭ 58 (-96.27%)
Mutual labels:  markers
Leaflet.freedraw
🌏 FreeDraw allows the free-hand drawing of shapes on your Leaflet.js map layer – providing an intuitive and familiar UX for creating geospatial boundaries similar to Zoopla and others. Included out-of-the-box is the concaving of polygons, polygon merging and simplifying, as well as the ability to add edges and modify existing shapes.
Stars: ✭ 446 (-71.36%)
Mutual labels:  markers
Show trajectory
This repository collected 3 ways to show trajectory of robot in ROS
Stars: ✭ 48 (-96.92%)
Mutual labels:  markers
Dual-color-Polyline-Animation
This library will help to show the polyline in dual color similar as Uber.
Stars: ✭ 73 (-95.31%)
Mutual labels:  markers
Examples
Self-contained examples for the legacy Maps API for JavaScript.
Stars: ✭ 78 (-94.99%)
Mutual labels:  markers
get phylomarkers
A pipeline to select optimal markers for microbial phylogenomics and species tree estimation using coalescent and concatenation approaches
Stars: ✭ 34 (-97.82%)
Mutual labels:  markers
Mapme
The Android maps adapter
Stars: ✭ 844 (-45.79%)
Mutual labels:  markers
Tileview
TileView is a subclass of android.view.ViewGroup that asynchronously displays, pans and zooms tile-based images. Plugins are available for features like markers, hotspots, and path drawing.
Stars: ✭ 1,447 (-7.06%)
Mutual labels:  markers
Ar Alphabets
Augmented Reality on Web (Web AR) for Kids to learn Alphabets with fun. AR on all Mobile Devices
Stars: ✭ 98 (-93.71%)
Mutual labels:  markers
Mayamatchmovesolver
A Bundle Adjustment solver for MatchMove related tasks.
Stars: ✭ 50 (-96.79%)
Mutual labels:  markers

Google Maps AngularJS Directive

Demo
Documentation
Road Trip By StreetView
Maps Can Talk | Custom Marker

If you like this, you also may like these:

Background

There is already one for this. However, I found myself taking a totally different approach than the existing one, such as:

  1. Everything in tag and attributes.
    Thus, users don't even need knowledge of JavaScript.

  2. Expose all original Google Maps V3 API to the user.
    No hiding, no wrapping or whatsoever. By doing so, programmers don't need to learn how to use this module. You only need to know Google Maps V3 API.

There is a blog that introduces this module. The title of it is 'Google Map As The Simplest Way'

To get started

For Bower users,

$ bower install ngmap

  1. Include ng-map.min.js: <script src="/bower_components/ngmap/build/scripts/ng-map.min.js"></script>

  2. Include Google Maps:
    <script src="http://maps.google.com/maps/api/js"></script>

  3. Name your AngularJS app ngMap, or add it as a dependency

    var myApp = angular.module('myApp', ['ngMap']);

To get the map instance use the NgMap.getMap() function

app.controller('MyController', function(NgMap) {
  NgMap.getMap().then(function(map) {
    console.log(map.getCenter());
    console.log('markers', map.markers);
    console.log('shapes', map.shapes);
  });
});

For npm users,

$ npm install ngmap

For Meteor users: https://atmospherejs.com/wormy/angularjs-google-maps

Lazy loading of Google Maps JavaScript

Simply wrap the map tag with map-lazy-load="https://maps.google.com/maps/api/js".

<div map-lazy-load="https://maps.google.com/maps/api/js">
  <ng-map center="41,-87" zoom="3"></ng-map>
</div>

If you need to pass in an API key to the javascript, you can set a scope variable in your controller (e.g. $scope.googleMapsUrl="https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE";). This can be set from a constant value in your app to standardise the API key to pass to google for multiple controllers.

<div map-lazy-load="https://maps.google.com/maps/api/js"
  map-lazy-load-params="{{googleMapsUrl}}">
  <ng-map center="41,-87" zoom="3"></ng-map>
</div>

FAQ

Grey area in Google Maps

The usual reason why this happens is that the size of the map is changed after the map has been initialized. If you for some reason change the size of the div, you need to trigger the "resize" event and possible recenter the map.

 var center = map.getCenter();
 google.maps.event.trigger(map, "resize");
 map.setCenter(center);

Ref.

Check if a marker is within Map, Rectangle, or Circle

`map.getBounds().contains(marker.getPosition());`

Calculate distance between two position

You can check this out: https://developers.google.com/maps/documentation/javascript/distancematrix. As you see, DistanceMatrix does not require map nor directive.

Another way to do this, is to use directions directive. As you see it here: https://rawgit.com/allenhwkim/angularjs-google-maps/master/testapp/directions2.html, you have access to DirectionsRenderer by using map.directionsRenderers[id]

https://developers.google.com/maps/documentation/javascript/reference?hl=en#DirectionsRenderer

You use getDirections() or directions, then calculate the distance from there. e.g.,

Distance: {{ map.directionsRenderers[0].directions.routes[0].legs[0].distance }}

Directives

  • bicycling-layer
  • custom-control
  • custom-marker (NEW)
  • directions (NEW)
  • drawing-manager (NEW)
  • dynamic-maps-engine-layer
  • fusion-tables-layer
  • heatmap-layer
  • info-window
  • kml-layer
  • map
  • map-data
  • map-lazy-load (NEW)
  • map-type
  • map_controller
  • maps-engine-layer
  • marker
  • overlay-map-type
  • places-auto-complete
  • shape
  • street-view-panorama (NEW)
  • traffic-layer
  • transit-layer

Advanced examples

Contributors

Contributing

  • Clone the repository from GitHub.
  • Change to the cloned directory.
  • npm install to install the build tools
  • gulp build to build the JavaScript & doc files in the /build folder & run the unit tests.
  • gulp clean to clean up the repository by removing files and folders from previous build.
  • gulp test to run the Karma unit test suite.
  • gulp test:e2e to run the Protractor test suite. For the first test run, you may need to update the protractor webdriver manager. It will show the command on screen if this is required (node_modules/gulp-protractor/node_modules/protractor/bin/webdriver-manager update).
  • gulp test:server will start a web server for the testapp on http://localhost:8888

License

MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].