Android MapView path.draw рисует сумасшедшие линии многоугольника повсюду - PullRequest
2 голосов
/ 22 января 2012

Я уже пару недель бьюсь над Google MapViews android.

Я рисую большое количество полигонов с большим количеством точек. в среднем 15 полигонов и около 1000 точек каждый.

Первая проблема, с которой я столкнулся, была производительность ... Не удивительно Проведя некоторое тестирование, я понял, что виновником является projection.ToPixel (), который я успешно обхожу, когда пользователи панорамируют, просто перемещая все мои точки в направлении на x пикселей (разница), однако при масштабировании у меня нет выбора, кроме как использовать метод toPixel.

Возможно, есть более эффективный способ изменения моих очков в зависимости от уровня масштабирования? после некоторого исследования я нашел примеры того, как это сделать с кругами и другими фигурами, но я понятия не имею, с чего начать с изменения формы многоугольников, есть идеи по этому поводу?

Вторая проблема, с которой я сталкиваюсь, заключается в том, что, когда у меня есть весь многоугольник, все грандиозно, но когда я перемещаюсь по границам карты (где карта фактически начинается снова влево и вправо) с любой стороны, линии многоугольника, кажется, достигают и растягиваются через границы карты, вызывая сумасшедшие линии спагетти повсюду! Я предполагаю, что то, что происходит, заключается в том, что методы path.close () или path.LineTo () думают, что кратчайший путь пролетает на полпути по всему миру, чтобы достичь следующей точки, которая вызывает эти линии. Я понятия не имею, как решить эту проблему. Я просто не могу игнорировать точки, которые не попадают в текущие интервалы lon / lat, потому что это (очевидно) заставляет многоугольник менять форму все время!

Кто-нибудь сталкивался с этой проблемой и как можно решить ее? Я даже не уверен, что я должен гуглить !?

ОБНОВЛЕНИЕ 1: Проблема может быть легко решена путем предотвращения циклического просмотра карты. Есть ли какой-нибудь способ предотвратить зацикливание мира на карте!?!?

...