001 package com.google.gwt.maps.client.overlays; 002 003 import com.google.gwt.core.client.JavaScriptObject; 004 import com.google.gwt.core.client.JsArrayInteger; 005 006 /** 007 * This object defines the marker shape to use in determination of a marker's clickable region. The shape consists of two properties ° type and coord ° which define the general type of marker and coordinates specific to that type of marker. 008 * <br><br> 009 * See <a href="https://developers.google.com/maps/documentation/javascript/reference#MarkerShape">MarkerShape API Doc</a> 010 */ 011 public class MarkerShape extends JavaScriptObject { 012 013 /** 014 * This object defines the marker shape to use in determination of a marker's clickable region. The shape consists of two properties ° type and coord ° which define the general type of marker and coordinates specific to that type of marker. 015 * use newInstance(); 016 */ 017 protected MarkerShape() {} 018 019 /** 020 * creates This object defines the marker shape to use in determination of a marker's clickable region. The shape consists of two properties ° type and coord ° which define the general type of marker and coordinates specific to that type of marker. 021 */ 022 public final static MarkerShape newInstance() { 023 return JavaScriptObject.createObject().cast(); 024 } 025 026 /** 027 * sets The format of this attribute depends on the value of the type and follows the w3 AREA coords specification found at <br><br> 028 * See <a href="http://www.w3.org/TR/REC-html40/struct/objects.html#adef-coords">adef-coords API Doc</a>. 029 * The coords attribute is an array of integers that specify the pixel position of the shape relative to the top-left corner of the target image. The coordinates depend on the value of type as follows: 030 * - circle: coords is [x1,y1,r] where x1,y2 are the coordinates of the center of the circle, and r is the radius of the circle. 031 * - poly: coords is [x1,y1,x2,y2...xn,yn] where each x,y pair contains the coordinates of one vertex of the polygon. 032 * - rect: coords is [x1,y1,x2,y2] where x1,y1 are the coordinates of the upper-left corner of the rectangle and x2,y2 are the coordinates of the lower-right coordinates of the rectangle. 033 * @param coords array of coords 034 */ 035 public final native void setCoordinates(JsArrayInteger coords) /*-{ 036 this.coords = coords; 037 }-*/; 038 039 /** 040 * gets coords (refer to setter) 041 */ 042 public final native JsArrayInteger getCoordinates() /*-{ 043 return this.coords; 044 }-*/; 045 046 /** 047 * sets Describes the shape's type and can be circle, poly or rect. 048 * @param type 049 */ 050 public final void setType(MarkerShapeType type) { 051 setType(type.value()); 052 } 053 054 /** 055 * sets Describes the shape's type and can be circle, poly or rect. 056 * @param type 057 */ 058 private final native void setType(String type) /*-{ 059 this.type = type; 060 }-*/; 061 062 /** 063 * gets gets Describes the shape's type and can be circle, poly or rect. 064 */ 065 public final MarkerShapeType getType() { 066 return MarkerShapeType.fromValue(getTypeImpl()); 067 } 068 069 /** 070 * gets Describes the shape's type and can be circle, poly or rect. 071 */ 072 private final native String getTypeImpl() /*-{ 073 return this.type; 074 }-*/; 075 076 }