1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
package com.mapbox.mapboxsdk.offline;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.Keep;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.geometry.LatLngBounds;
/**
* An offline region defined by a style URL, geographic bounding box, zoom range, and
* device pixel ratio.
* <p>
* Both minZoom and maxZoom must be ≥ 0, and maxZoom must be ≥ minZoom.
* <p>
* maxZoom may be ∞, in which case for each tile source, the region will include
* tiles from minZoom up to the maximum zoom level provided by that source.
* <p>
* pixelRatio must be ≥ 0 and should typically be 1.0 or 2.0.
*/
public class OfflineTilePyramidRegionDefinition implements OfflineRegionDefinition, Parcelable {
@Keep
private String styleURL;
@Keep
private LatLngBounds bounds;
@Keep
private double minZoom;
@Keep
private double maxZoom;
@Keep
private float pixelRatio;
/**
* Constructor to create an OfflineTilePyramidDefinition from parameters.
*
* @param styleURL the style
* @param bounds the bounds
* @param minZoom min zoom
* @param maxZoom max zoom
* @param pixelRatio pixel ratio of the device
*/
@Keep
public OfflineTilePyramidRegionDefinition(
String styleURL, LatLngBounds bounds, double minZoom, double maxZoom, float pixelRatio) {
// Note: Also used in JNI
this.styleURL = styleURL;
this.bounds = bounds;
this.minZoom = minZoom;
this.maxZoom = maxZoom;
this.pixelRatio = pixelRatio;
}
/**
* Constructor to create an OfflineTilePyramidDefinition from a Parcel.
*
* @param parcel the parcel to create the OfflineTilePyramidDefinition from
*/
public OfflineTilePyramidRegionDefinition(Parcel parcel) {
this.styleURL = parcel.readString();
this.bounds = new LatLngBounds.Builder()
.include(new LatLng(parcel.readDouble(), parcel.readDouble()))
.include(new LatLng(parcel.readDouble(), parcel.readDouble()))
.build();
this.minZoom = parcel.readDouble();
this.maxZoom = parcel.readDouble();
this.pixelRatio = parcel.readFloat();
}
/*
* Getters
*/
public String getStyleURL() {
return styleURL;
}
public LatLngBounds getBounds() {
return bounds;
}
public double getMinZoom() {
return minZoom;
}
public double getMaxZoom() {
return maxZoom;
}
public float getPixelRatio() {
return pixelRatio;
}
/*
* Parceable
*/
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(styleURL);
dest.writeDouble(bounds.getLatNorth());
dest.writeDouble(bounds.getLonEast());
dest.writeDouble(bounds.getLatSouth());
dest.writeDouble(bounds.getLonWest());
dest.writeDouble(minZoom);
dest.writeDouble(maxZoom);
dest.writeFloat(pixelRatio);
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public OfflineTilePyramidRegionDefinition createFromParcel(Parcel in) {
return new OfflineTilePyramidRegionDefinition(in);
}
public OfflineTilePyramidRegionDefinition[] newArray(int size) {
return new OfflineTilePyramidRegionDefinition[size];
}
};
}
|