Существует ли преобразование плитки xamGeographicMap x, y в географические координаты (широта, долгота)?

Я пытаюсь заставить свой xamGeographicMap (в элементах управления Infragistics WPF) получить свои фоновые плитки из службы WMS, работающей на внутреннем GeoServer. Этот сервис требует, чтобы вы предоставили ему ограничивающую рамку широты/долготы, а не координаты плитки x/y. Однако, когда я переопределяю GetTileLayers в своем производном MapTileSource, мне предоставляются только tilePositionX, tilePositionY и tileLevel. Как преобразовать это в широту/долготу?

Я столкнулся с похожей проблемой, когда пытался подключить Bing Maps WPF Control к той же службе, но она была решена с помощью класса TileSystem, представленного здесь: http://msdn.microsoft.com/en-us/library/bb259689.aspx. Я пытался использовать тот же класс преобразования с xamGeoGraphicMap безрезультатно.


person blachniet    schedule 04.10.2013    source источник


Ответы (2)


Оказывается, вы действительно можете использовать класс TileSystem, предоставленный на MSDN для это. Моя ошибка заключалась в предположении, что tileLevel равно zoom. Посмотрев на некоторые примеры кода примера Infragistics, я наткнулся на следующую строку:

var zoom = tileLevel - 8;

Используя это преобразование в вызове TileSystem.PixelXYToLatLong, я смог получить нужные мне значения. Убедитесь, что вы конвертируете свои границы из градусов в метры, если ваша служба WMS ожидает метры.

person blachniet    schedule 30.10.2013

Для этого нужно написать собственные методы, так как встроенных нет.

На форумах Infragsaitics обсуждается аналогичный вопрос. Вы можете увидеть прикрепленный образец:

http://www.infragistics.com/community/forums/p/84442/423636.aspx#423636

person Stefan    schedule 30.10.2013