Могу ли я изменить порядок, в котором точки наложения карты рисуются на карте - PullRequest
1 голос
/ 02 ноября 2011

У меня есть наложение карт, которое содержит несколько точек, каждая со своим пронумерованным маркером.Точки находятся в наложении в том порядке, в котором я хотел бы, чтобы они были нарисованы (т. Е. От маркера 0 до 10, где 10 - самая последняя точка).Когда карта отображается, кажется, что точки нарисованы в порядке увеличения широты.Это означает, что в моем случае маркер для точки 7 может быть нарисован поверх маркера для точки 10. Есть ли способ контролировать порядок, в котором маркеры будут размещены на карте?

1 Ответ

1 голос
/ 24 мая 2012

Я нашел это - я добавил следующий код, и он, кажется, работает.Это заставляет элементы рисоваться в том же порядке, в котором они находятся в наложении, а не в порядке увеличения широты.

Интересно, что если вы выберете другой порядок (например, в обратном порядке), карта будет отображаться так же, как и вы.спросите это с более ранними записями, накладывающимися на более поздние.то есть точка 7 будет нарисована поверх точки 10, если они обе имеют одинаковые координаты карты.Однако, когда вы нажимаете на то, что отображается как точка 7, метод onTap выдаст вам индекс для точки 10 (предположительно потому, что она была нарисована 10-й в последовательности), что может вызвать некоторую путаницу.Затем вам нужно запомнить последовательность, которую вы просили показать, и определить, какая запись на самом деле сверху.

    @Override
protected int getIndexToDraw(int drawingOrder) {
    // Log.d("getIndexToDraw", "drawing order: " + drawingOrder);  //just my debug
    return drawingOrder; // forces order to follow overlay item sequence
    // return super.getIndexToDraw(drawingOrder); // default code - ie Latitude order
}
...