code: function ( feature, latlng ) {
  				var Pin = L.marker.pin ( 
  					latlng,
  					{
  						"text" : feature.properties.text,
  						"phone" : feature.properties.phone,
  						"url" : feature.properties.url,
  						"distance" : feature.properties.distance,
  						"address" : feature.properties.address,
  						"pinCategory" : _Categories.getCategory ( feature.properties.categoryId ),
  						"icon" : _Categories.getCategory ( feature.properties.categoryId ).CategoryIcon,
  						"draggable" : true,
  						"className" : 'Pin',
  						"title" : _Categories.getCategory ( feature.properties.categoryId ).CategoryName,
  					}
  				);
  
  				Pin.bindPopup ( Pin.getHtml ( ) );
  				
  				var ContextMenu;
  				if ( typeof module !== 'undefined' && module.exports ) {
  					ContextMenu = require ('./L.Marker.Pin.ContextMenu' );
  				}
  				else {
  					ContextMenu = L.marker.pin.contextmenu;
  				}
  				
  				Pin.on ( 'add', function ( event ) {this.options.map = event.target._map;} );
  				Pin.on ( 'contextmenu', ContextMenu ); 
  				Pin.on ( 'dblclick', ContextMenu);
  				Pin.on ( 'dragend', this.CallbackFunction ); 
  				
  				this.push ( Pin );
  				
  				return Pin;
  			}
docs: /*
  --- pointToLayer ( feature, latlng ) method ---
  
  this method add a pin to the collection from GeoJSON feature
  
  Parameters :
  - feature : the GeoJSON object with pin's data
  - latlng : the position of the pin
  
  Return :
  - a new pin to add to the map