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
|
package com.mapswithme.maps.bookmarks.data;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import com.mapswithme.maps.Framework;
import com.mapswithme.util.GeoUtils;
import com.mapswithme.util.sharing.ShareableInfoProvider;
public class BookmarkInfo implements ShareableInfoProvider
{
private final long mCategoryId;
private final long mBookmarkId;
@NonNull
private final String mTitle;
@NonNull
private final String mFeatureType;
@NonNull
private final Icon mIcon;
private final double mMerX;
private final double mMerY;
private final double mScale;
@NonNull
private final String mAddress;
@NonNull
private final ParcelablePointD mLatLonPoint;
public BookmarkInfo(@IntRange(from = 0) long categoryId, @IntRange(from = 0) long bookmarkId)
{
mCategoryId = categoryId;
mBookmarkId = bookmarkId;
mTitle = BookmarkManager.INSTANCE.getBookmarkName(mBookmarkId);
mFeatureType = BookmarkManager.INSTANCE.getBookmarkFeatureType(mBookmarkId);
mIcon = new Icon(BookmarkManager.INSTANCE.getBookmarkColor(mBookmarkId),
BookmarkManager.INSTANCE.getBookmarkIcon(mBookmarkId));
final ParcelablePointD ll = BookmarkManager.INSTANCE.getBookmarkXY(mBookmarkId);
mMerX = ll.x;
mMerY = ll.y;
mScale = BookmarkManager.INSTANCE.getBookmarkScale(mBookmarkId);
mAddress = BookmarkManager.INSTANCE.getBookmarkAddress(mBookmarkId);
mLatLonPoint = GeoUtils.toLatLon(mMerX, mMerY);
}
public long getCategoryId()
{
return mCategoryId;
}
public long getBookmarkId()
{
return mBookmarkId;
}
public DistanceAndAzimut getDistanceAndAzimuth(double cLat, double cLon, double north)
{
return Framework.nativeGetDistanceAndAzimuth(mMerX, mMerY, cLat, cLon, north);
}
@NonNull
public String getFeatureType() { return mFeatureType; }
@NonNull
@Override
public String getName()
{
return mTitle;
}
@NonNull
public Icon getIcon()
{
return mIcon;
}
@NonNull
public String getDistance(double latitude, double longitude, double v)
{
return getDistanceAndAzimuth(latitude, longitude, v).getDistance();
}
@Override
public double getLat()
{
return mLatLonPoint.x;
}
@Override
public double getLon()
{
return mLatLonPoint.y;
}
@Override
public double getScale()
{
return mScale;
}
@NonNull
@Override
public String getAddress()
{
return mAddress;
}
}
|