В моем приложении на данный момент на карту нарисована «сетка», рисуя каждый квадрат многоугольника один за другим и заполняя его цветом. Затем я добавляю объект многоугольника к карте, чтобы изменить позже, если нужно.Слишком много (потенциально 10 000+) нарисованных многоугольников отстающих карт Google
Я только создаю каждый многоугольник один раз, однако существует большая согласованная «лага» и низкая частота кадров, чем больше я добавляю (десятки тысяч потенциально), в конечном итоге разбивая приложение.
Вот текущая часть кода, которая создает и добавляет каждый квадрат к хэш-карте.
double latScale = 0.000180;
double lngScale = 0.000288;
PolygonOptions po = new PolygonOptions()
.add( new LatLng(lat, lng),
new LatLng(lat, lng + lngScale),
new LatLng(lat - latScale, lng + lngScale),
new LatLng(lat - latScale, lng))
.strokeWidth(3f)
.strokeColor(Color.argb(220, 0, 0, 0));
if (colors.containsKey(color)){
po.fillColor(colors.get(color));
}
else{
po.fillColor(colors.get("default"));
}
gridSquares.put(square_id, mMap.addPolygon(po));
Мой вопрос, что именно вызывает это отставание так много (я понимаю, что это должно быть само количество, но мне нужна конкретика, заново рисовать каждый кадр? Памяти?) И как я мог выполнить свою потребность для этого гигантского сетчатого оверлея каким-то образом, который не так сильно отстает. Либо с моим нынешним мышлением, либо по-новому.
Если необходимо уточнить пожалуйста, обратитесь.
Это проблемы с рисованием, при этом рендеринг 10k + каждый кадр вызывает лаг. Сделайте только что-то, что вы можете увидеть на экране. –
@Rod_Algonquin Что делать, если мне нужно/нужно иметь сетку с потенциально 10k + квадратами? – SamC
Затем вы можете группировать/группировать их, и как только вы увеличиваете масштаб, вы рисуете все, что видите. –