001 package com.google.gwt.maps.client.base;
002
003 import com.google.gwt.core.client.JavaScriptObject;
004
005 /**
006 * A LatLngBounds instance represents a rectangle in geographical coordinates, including one that crosses the 180 degrees longitudinal meridian.
007 * <br><br>
008 * See <a href="https://developers.google.com/maps/documentation/javascript/reference#LatLngBounds">LatLngBounds API Doc</a>
009 */
010 public class LatLngBounds extends JavaScriptObject {
011
012 /**
013 * A LatLngBounds instance represents a rectangle in geographical coordinates, including one that crosses the 180 degrees longitudinal meridian.
014 * use newInstance(...);
015 */
016 protected LatLngBounds() {}
017
018 /**
019 * creates A LatLngBounds instance represents a rectangle in geographical coordinates, including one that crosses the 180 degrees longitudinal meridian.
020 * @param sw {@link LatLng}
021 * @param ne {@link LatLng}
022 */
023 public final static LatLngBounds newInstance(LatLng sw, LatLng ne) {
024 return createJso(sw, ne).cast();
025 }
026
027 private final static native JavaScriptObject createJso(LatLng sw, LatLng ne) /*-{
028 return new $wnd.google.maps.LatLngBounds(sw, ne);
029 }-*/;
030
031 /**
032 * Returns true if the given lat/lng is in this bounds.
033 * @param latlng {@link LatLng}
034 */
035 public final native boolean contains(LatLng latlng) /*-{
036 return this.contains(latlng);
037 }-*/;
038
039 /**
040 * Returns true if this bounds approximately equals the given bounds.
041 * @param other {@link LatLngBounds}
042 */
043 public final native boolean equals(LatLngBounds other) /*-{
044 return this.equals(other);
045 }-*/;
046
047 /**
048 * Extends this bounds to contain the given point.
049 * @param point {@link LatLng}
050 * @return {@link LatLngBounds}
051 */
052 public final native LatLngBounds extend(LatLng point) /*-{
053 return this.extend(point);
054 }-*/;
055
056 /**
057 * Computes the center of this LatLngBounds
058 * @return {@link LatLng}
059 */
060 public final native LatLng getCenter() /*-{
061 return this.getCenter();
062 }-*/;
063
064 /**
065 * Returns the north-east corner of this bounds.
066 * @return {@link LatLng}
067 */
068 public final native LatLng getNorthEast() /*-{
069 return this.getNorthEast();
070 }-*/;
071
072 /**
073 * Returns the south-west corner of this bounds.
074 * @return {@link LatLng}
075 */
076 public final native LatLng getSouthWest() /*-{
077 return this.getSouthWest();
078 }-*/;
079
080 /**
081 * Returns true if this bounds shares any points with this bounds.
082 * @param other {@link LatLngBounds}
083 * @return boolean
084 */
085 public final native boolean intersects(LatLngBounds other) /*-{
086 return this.intersects(other);
087 }-*/;
088
089 /**
090 * Returns if the bounds are empty.
091 * @return boolean
092 */
093 public final native boolean isEmpty() /*-{
094 return this.isEmpty();
095 }-*/;
096
097 /**
098 * Converts the given map bounds to a lat/lng span.
099 * @return {@link LatLng}
100 */
101 public final native LatLng toSpan() /*-{
102 return this.toSpan();
103 }-*/;
104
105 /**
106 * Converts to string.
107 * @return boolean
108 */
109 public final native String getToString() /*-{
110 return this.toString();
111 }-*/;
112
113 /**
114 * Returns a string of the form "lat_lo,lng_lo,lat_hi,lng_hi" for this bounds, where "lo" corresponds to the southwest corner of the bounding box, while "hi" corresponds to the northeast corner of that box.
115 * @param precision
116 * @return String
117 */
118 public final native String toUrlValue(int precision) /*-{
119 return this.toUrlValue(precision);
120 }-*/;
121
122 /**
123 * Extends this bounds to contain the union of this and the given bounds.
124 * @param other {@link LatLngBounds}
125 * @return {@link LatLngBounds}
126 */
127 public final native LatLngBounds union(LatLngBounds other) /*-{
128 return this.union(other);
129 }-*/;
130
131 }