If you are not satisfied with default Google map Marker ( Default google marker can only be a icon, image or shape ), for example adding a border, then you should use richmarker!

http://google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/

Inside richmarker:

RickMarker extends from google.maps.OverlayView

RichMarker.prototype.onAdd
     
     var panes = this.getPanes();// Returns the panes in which this OverlayView can be rendered. The panes are not initialized until  onAdd  is called by the API.
     panes.overlayMouseTarget.appendChild();// This pane contains elements that receive DOM mouse events, such as the transparent targets for markers. It is above the floatShadow, so that markers in the shadow of the info window can be clickable. (Pane 5).

RichMarker.prototype.draw

       var projection = this.getProjection(); // Returns the  MapCanvasProjection  object associated with this  OverlayView . The projection is not initialized until  onAdd  is called by the API.
       var latLng = (this.get('position'));
       var pos = projection.fromLatLngToDivPixel(latLng);// Computes the pixel coordinates of the given geographical location in the DOM element that holds the draggable map.
       var offset = this.getOffset_();
       this.markerWrapper_.style['top'] = (pos.y + offset.height) + 'px';
       this.markerWrapper_.style['left'] = (pos.x + offset.width) + 'px';
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄