apollodec/Apollo/bower_components/ngmap/build/docs/marker.js.html
venbatechnologies@gmail.com d06b1c0cba status file
2017-12-07 11:31:25 +05:30

174 lines
6.2 KiB
HTML
Executable File

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: directives/marker.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: directives/marker.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>/**
* @ngdoc directive
* @name marker
* @requires Attr2Options
* @requires NavigatorGeolocation
* @description
* Draw a Google map marker on a map with given options and register events
*
* Requires: map directive
*
* Restrict To: Element
*
* @param {String} position address, 'current', or [latitude, longitude]
* example:
* '1600 Pennsylvania Ave, 20500 Washingtion DC',
* 'current position',
* '[40.74, -74.18]'
* @param {Boolean} centered if set, map will be centered with this marker
* @param {String} &amp;lt;MarkerOption> Any Marker options, https://developers.google.com/maps/documentation/javascript/reference?csw=1#MarkerOptions
* @param {String} &amp;lt;MapEvent> Any Marker events, https://developers.google.com/maps/documentation/javascript/reference
* @example
* Usage:
* &lt;map MAP_ATTRIBUTES>
* &lt;marker ANY_MARKER_OPTIONS ANY_MARKER_EVENTS">&lt;/MARKER>
* &lt;/map>
*
* Example:
* &lt;map center="[40.74, -74.18]">
* &lt;marker position="[40.74, -74.18]" on-click="myfunc()">&lt;/div>
* &lt;/map>
*
* &lt;map center="the cn tower">
* &lt;marker position="the cn tower" on-click="myfunc()">&lt;/div>
* &lt;/map>
*/
ngMap.directive('marker', ['Attr2Options', function(Attr2Options) {
var parser = Attr2Options;
var getMarker = function(options, events) {
var marker;
/**
* set options
*/
if (options.icon instanceof Object) {
if ((""+options.icon.path).match(/^[A-Z_]+$/)) {
options.icon.path = google.maps.SymbolPath[options.icon.path];
}
for (var key in options.icon) {
var arr = options.icon[key];
if (key == "anchor" || key == "origin") {
options.icon[key] = new google.maps.Point(arr[0], arr[1]);
} else if (key == "size" || key == "scaledSize") {
options.icon[key] = new google.maps.Size(arr[0], arr[1]);
}
}
}
if (!(options.position instanceof google.maps.LatLng)) {
var orgPosition = options.position;
options.position = new google.maps.LatLng(0,0);
marker = new google.maps.Marker(options);
parser.setDelayedGeoLocation(marker, 'setPosition', orgPosition);
} else {
marker = new google.maps.Marker(options);
}
/**
* set events
*/
if (Object.keys(events).length > 0) {
console.log("markerEvents", events);
}
for (var eventName in events) {
if (eventName) {
google.maps.event.addListener(marker, eventName, events[eventName]);
}
}
return marker;
};
return {
restrict: 'E',
require: '^map',
link: function(scope, element, attrs, mapController) {
var orgAttrs = parser.orgAttributes(element);
var filtered = parser.filter(attrs);
var markerOptions = parser.getOptions(filtered, scope);
var markerEvents = parser.getEvents(scope, filtered);
console.log('marker options', markerOptions, 'events', markerEvents);
/**
* set event to clean up removed marker
* useful with ng-repeat
*/
element.bind('$destroy', function() {
var markers = marker.map.markers;
for (var name in markers) {
if (markers[name] == marker) {
delete markers[name];
}
}
marker.setMap(null);
});
var marker = getMarker(markerOptions, markerEvents);
mapController.addMarker(marker);
/**
* set observers
*/
parser.observeAttrSetObj(orgAttrs, attrs, marker); /* observers */
} //link
}; // return
}]);//
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Index</a></h2><h3>service</h3><ul><li><a href="Attr2Options.html">Attr2Options</a></li><li><a href="GeoCoder.html">GeoCoder</a></li><li><a href="NavigatorGeolocation.html">NavigatorGeolocation</a></li><li><a href="StreetView.html">StreetView</a></li></ul><h3>directive</h3><ul><li><a href="bicycling-layer.html">bicycling-layer</a></li><li><a href="cloud-layer.html">cloud-layer</a></li><li><a href="custom-control.html">custom-control</a></li><li><a href="drawing-manager.html">drawing-manager</a></li><li><a href="dynamic-maps-engine-layer.html">dynamic-maps-engine-layer</a></li><li><a href="fusion-tables-layer.html">fusion-tables-layer</a></li><li><a href="heatmap-layer.html">heatmap-layer</a></li><li><a href="info-window.html">info-window</a></li><li><a href="kml-layer.html">kml-layer</a></li><li><a href="lazy-load.html">lazy-load</a></li><li><a href="map.html">map</a></li><li><a href="map-data.html">map-data</a></li><li><a href="map-type.html">map-type</a></li><li><a href="MapController.html">MapController</a></li><li><a href="maps-engine-layer.html">maps-engine-layer</a></li><li><a href="marker.html">marker</a></li><li><a href="overlay-map-type.html">overlay-map-type</a></li><li><a href="shape.html">shape</a></li><li><a href="traffic-layer.html">traffic-layer</a></li><li><a href="transit-layer.html">transit-layer</a></li><li><a href="weather-layer.html">weather-layer</a></li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha9</a>
and <a href="https://github.com/allenhwkim/angular-jsdoc">angular-jsdoc</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
<script>
var href=window.location.href.match(/\/([^\/]+$)/)[1];
document.querySelector("nav a[href='"+href+"']").scrollIntoView(true);
if (window.location.hash == "")
document.querySelector("body").scrollIntoView(true);
</script>
</body>
</html>