2016-06-30 8 views
0

Я девеллирую UWP-приложение и использую MapControl. Я также добавлять элементы, такие как MapIcon и MapPolyLine к MapControl, но у меня возникает проблемы с MapPolyLine:UWP MapControl: MapPolyLine искажен/искажен

Иногда при добавлении такой полилинии она появляется полностью искажена/уродливо: Malformed PolyLine

При изменении установки zoomlevel из MapControl он часто возвращается к предполагаемой полилинии, но в конечном итоге он будет казаться искаженным при использовании предыдущего уровня увеличения. Wellformed PolyLine

(В дают скриншоты, то MapControl использует OSM-слой, но это также происходит с по умолчанию Bing-карт-Layer, оба скриншоты показывают один и те же MapPolyLine с разными точками зрения)

+0

К сожалению, эта проблема сохраняется, у кого-то есть идея? –

ответ

1

Похоже вы также можете хранить высоту? Я думаю, что управление картой при масштабировании отображает точку в трехмерном пространстве.

Попробуйте это:

// We are not Plotting Alititue to keep map 'flat' [ Also Emulator sets Altitude = 0 ] 

BasicGeoposition _newPlotPos = new BasicGeoposition() { 
    Latitude = position.Latitude, 
    Longitude = position.Longitude, 
    Altitude = 0  
}; 
+0

Извините за мой последний ответ. Довольно хорошая идея, я фактически сохранил высоту - к сожалению, проблема сохраняется с искусственной высотой 0. Любые другие идеи? –

+0

Может быть, я пропустил понимание проблемы, как из снимков экранов. Я действительно не вижу, где «неправильные» линии? Они только те, что убегают от экрана? –

0

Может быть, им мисс понимания проблемы, как и с экранов выстрелов Im фактически не видя, где «» Malformed линии? Они только те, что убегают от экрана?

Если это линии, идущие в отдаленную точку, то это может быть то же самое, что и проблема, которую я имел по двум причинам. Во-первых, если вы используете эмулятор, иногда первое место GPS-устройства при его запуске находится где-то в Сиэтле, и это может быть первая точка, которую вы получаете, поэтому, если вы вытаскиваете данные локальных геоданных из базы данных, например, и первым пунктом является Сиэтл, тогда следующая точка - ваши локальные данные, вы получаете линию в Сиэтле. Во-вторых, MapPloyLine работает с точкой в ​​списке, поэтому каждая запись в линию уловки отсюда -> здесь. Поэтому, если в ваших данных позиции есть «пробелы», вы можете увидеть огромные линии, оттянутые на позиции, которые выглядят странно, но правильны. Я регистрирую данные из GPS в базу данных, и если регистрация завершается, я увеличиваю «RecordingCount» в данных для представления и нового «сегмента». Я также использую буфер FIFO для построения своих полилиний, пропуская первую точку графика (ее начало нового сегмента), а затем переходим от этой начальной точки к следующей ... к следующей ... к следующей ..

+0

Да, проблема в том, что эти строки работают на экране. Оба скриншота, которые я предоставил, показывают точно такие же полилинии с разными уровнями масштабирования, но на верхнем, эти линии внезапно запускают экран. Данные для этих строк исходят из расчета маршрутизации на стороне сервера (а не GPS). Кроме того: эти скриншоты исходят от реального устройства (без эмулятора). –