flip MarkerLayer items over date-line
This commit is contained in:
parent
8ea6fef1ca
commit
ec7b7276c5
@ -102,6 +102,8 @@ public abstract class ItemizedLayer<Item extends MarkerItem> extends MarkerLayer
|
|||||||
|
|
||||||
mMap.getViewport().getMapViewProjection(mBox);
|
mMap.getViewport().getMapViewProjection(mBox);
|
||||||
|
|
||||||
|
float flipMax = (float) (Tile.SIZE * pos.scale) / 2;
|
||||||
|
|
||||||
synchronized (lock) {
|
synchronized (lock) {
|
||||||
if (mItems == null) {
|
if (mItems == null) {
|
||||||
if (layers.textureLayers != null) {
|
if (layers.textureLayers != null) {
|
||||||
@ -113,9 +115,14 @@ public abstract class ItemizedLayer<Item extends MarkerItem> extends MarkerLayer
|
|||||||
|
|
||||||
// check visibility
|
// check visibility
|
||||||
for (InternalItem it = mItems; it != null; it = it.next) {
|
for (InternalItem it = mItems; it != null; it = it.next) {
|
||||||
|
it.changes = false;
|
||||||
it.x = (float) ((it.px - mx) * scale);
|
it.x = (float) ((it.px - mx) * scale);
|
||||||
it.y = (float) ((it.py - my) * scale);
|
it.y = (float) ((it.py - my) * scale);
|
||||||
it.changes = false;
|
|
||||||
|
if (it.x > flipMax)
|
||||||
|
it.x -= (flipMax * 2);
|
||||||
|
else if (it.x < -flipMax)
|
||||||
|
it.x += (flipMax * 2);
|
||||||
|
|
||||||
if (!GeometryUtils.pointInPoly(it.x, it.y, mBox, 8, 0)) {
|
if (!GeometryUtils.pointInPoly(it.x, it.y, mBox, 8, 0)) {
|
||||||
if (it.visible) {
|
if (it.visible) {
|
||||||
@ -129,7 +136,6 @@ public abstract class ItemizedLayer<Item extends MarkerItem> extends MarkerLayer
|
|||||||
changedVisible++;
|
changedVisible++;
|
||||||
}
|
}
|
||||||
numVisible++;
|
numVisible++;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//log.debug(numVisible + " " + changedVisible + " " + changesInvisible);
|
//log.debug(numVisible + " " + changedVisible + " " + changesInvisible);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user