001 package com.google.gwt.maps.client.services;
002
003 import com.google.gwt.core.client.JavaScriptObject;
004 import com.google.gwt.core.client.JsArray;
005 import com.google.gwt.maps.client.base.LatLng;
006 import com.google.gwt.maps.client.workaround.WorkAroundUtils;
007
008 /**
009 * A directions query to be sent to the DirectionsService.
010 * <br><br>
011 * See <a href="https://developers.google.com/maps/documentation/javascript/reference#DirectionsRequest">DirectionsRequest API Doc</a>
012 */
013 public class DirectionsRequest extends JavaScriptObject {
014
015 /**
016 * use newInstance();
017 */
018 protected DirectionsRequest() {}
019
020 /**
021 * A directions query to be sent to the DirectionsService.
022 */
023 public static final DirectionsRequest newInstance() {
024 JavaScriptObject jso = JavaScriptObject.createObject();
025 WorkAroundUtils.removeGwtObjectId(jso);
026 return jso.cast();
027 }
028
029 // public final native void test() /*-{
030 // this.origin = "Arlington, WA";
031 // this.destination = "Seattle, WA";
032 // this.travelMode = $wnd.google.maps.TravelMode.DRIVING;
033 // }-*/;
034
035
036 /**
037 * If true, instructs the Directions service to avoid highways where possible. Optional.
038 * @param avoidHighways
039 */
040 public final native void setAvoidHighways(boolean avoidHighways) /*-{
041 this.avoidHighways = avoidHighways;
042 }-*/;
043
044 /**
045 * If true, instructs the Directions service to avoid highways where possible. Optional.
046 */
047 public final native boolean getAvoidHighways() /*-{
048 return this.avoidHighways;
049 }-*/;
050
051 /**
052 * If true, instructs the Directions service to avoid toll roads where possible. Optional.
053 * @param avoidTolls
054 */
055 public final native void setAvoidTolls(boolean avoidTolls) /*-{
056 this.avoidTolls = avoidTolls;
057 }-*/;
058
059 /**
060 * If true, instructs the Directions service to avoid toll roads where possible. Optional.
061 */
062 public final native boolean getAvoidTolls() /*-{
063 return this.avoidTolls;
064 }-*/;
065
066 /**
067 * Location of destination. This can be specified as either a string to be geocoded or a LatLng. Required.
068 * @param destination
069 */
070 public final native void setDestination(String destination) /*-{
071 this.destination = destination;
072 }-*/;
073
074 /**
075 * Location of destination. This can be specified as either a string to be geocoded or a LatLng.
076 */
077 public final native String getDestination_String() /*-{
078 return this.destination;
079 }-*/;
080
081 /**
082 * Location of destination. This can be specified as either a string to be geocoded or a LatLng. Required.
083 * @param destination
084 */
085 public final native void setDestination(LatLng destination) /*-{
086 this.destination = destination;
087 }-*/;
088
089 /**
090 * Location of destination. This can be specified as either a string to be geocoded or a LatLng.
091 */
092 public final native LatLng getDestination_LatLng() /*-{
093 return this.destination;
094 }-*/;
095
096 /**
097 * If set to true, the DirectionService will attempt to re-order the supplied intermediate waypoints to minimize overall cost of the route. If waypoints are optimized, inspect DirectionsRoute.waypoint_order in the response to determine the new ordering.
098 * @param optimizeWaypoints
099 */
100 public final native void setOptimizeWaypoints(boolean optimizeWaypoints) /*-{
101 this.optimizeWaypoints = optimizeWaypoints;
102 }-*/;
103
104 /**
105 * If set to true, the DirectionService will attempt to re-order the supplied intermediate waypoints to minimize overall cost of the route. If waypoints are optimized, inspect DirectionsRoute.waypoint_order in the response to determine the new ordering.
106 */
107 public final native boolean getOptimizeWaypoints() /*-{
108 return this.optimizeWaypoints;
109 }-*/;
110
111 /**
112 * Location of origin. This can be specified as either a string to be geocoded or a LatLng. Required.
113 * @param origin
114 */
115 public final native void setOrigin(String origin) /*-{
116 this.origin = origin;
117 }-*/;
118
119 /**
120 * Location of origin. This can be specified as either a string to be geocoded or a LatLng.
121 */
122 public final native String getOrigin_String() /*-{
123 return this.origin;
124 }-*/;
125
126 /**
127 * Location of origin. This can be specified as either a string to be geocoded or a LatLng. Required.
128 * @param origin
129 */
130 public final native void setOrigin(LatLng origin) /*-{
131 this.origin = origin;
132 }-*/;
133
134 /**
135 * Location of origin. This can be specified as either a string to be geocoded or a LatLng.
136 */
137 public final native LatLng getOrigin_LatLng() /*-{
138 return this.origin;
139 }-*/;
140
141 /**
142 * Whether or not route alternatives should be provided. Optional.
143 * @param provideRouteAlternatives
144 */
145 public final native void setProvideRouteAlternatives(boolean provideRouteAlternatives) /*-{
146 this.provideRouteAlternatives = provideRouteAlternatives;
147 }-*/;
148
149 /**
150 * Whether or not route alternatives should be provided. Optional.
151 */
152 public final native boolean getProvideRouteAlternatives() /*-{
153 return this.provideRouteAlternatives;
154 }-*/;
155
156 /**
157 * Region code used as a bias for geocoding requests. Optional.
158 * @param region
159 */
160 public final native void setRegion(String region) /*-{
161 this.region = region;
162 }-*/;
163
164 /**
165 * Region code used as a bias for geocoding requests. Optional.
166 */
167 public final native String getRegion() /*-{
168 return this.region;
169 }-*/;
170
171 /**
172 * Type of routing requested. Required.
173 * @param travelMode
174 */
175 public final void setTravelMode(TravelMode travelMode) {
176 setTravelModeImpl(travelMode.value());
177 }
178
179 private final native void setTravelModeImpl(String travelMode) /*-{
180 this.travelMode = "DRIVING";
181 }-*/;
182
183 /**
184 * Type of routing requested. Required.
185 */
186 public final TravelMode getTravelMode() {
187 return TravelMode.fromValue(getTravelModeImpl());
188 }
189
190 private final native String getTravelModeImpl() /*-{
191 return this.travelMode;
192 }-*/;
193
194 /**
195 * Preferred unit system to use when displaying distance. Defaults to the unit system used in the country of origin.
196 * @param unitSystem
197 */
198 public final void setUnitSystem(UnitSystem unitSystem) {
199 setUnitSystemImpl(unitSystem.value());
200 }
201
202 private final native void setUnitSystemImpl(int unitSystem) /*-{
203 this.unitSystem = unitSystem;
204 }-*/;
205
206 /**
207 * Preferred unit system to use when displaying distance. Defaults to the unit system used in the country of origin.
208 */
209 public final UnitSystem getUnitSystem() {
210 return UnitSystem.fromValue(getUnitSystemImpl());
211 }
212
213 private final native int getUnitSystemImpl() /*-{
214 return this.unitSystem;
215 }-*/;
216
217 /**
218 * Array of intermediate waypoints. Directions will be calculated from the origin to the destination by way of each waypoint in this array. Optional.
219 * @param waypoints
220 */
221 public final native void setWaypoints(JsArray<DirectionsWaypoint> waypoints) /*-{
222 this.waypoints = waypoints;
223 }-*/;
224
225 /**
226 * Array of intermediate waypoints. Directions will be calculated from the origin to the destination by way of each waypoint in this array. Optional.
227 */
228 public final native JsArray<DirectionsWaypoint> getWaypoints() /*-{
229 return this.waypoints;
230 }-*/;
231
232 }