Рисование Изображения к подэлементу в ListView

Может быть более простое и правильное решение: периметр Земли составляет 40 000 км на экваторе, около 37 000 - на цикле Гринвича (или любой долготы). Таким образом:

pythagoras = function (lat1, lon1, lat2, lon2) {
   function sqr(x) {return x * x;}
   function cosDeg(x) {return Math.cos(x * Math.PI / 180.0);}

   var earthCyclePerimeter = 40000000.0 * cosDeg((lat1 + lat2) / 2.0);
   var dx = (lon1 - lon2) * earthCyclePerimeter / 360.0;
   var dy = 37000000.0 * (lat1 - lat2) / 360.0;

   return Math.sqrt(sqr(dx) + sqr(dy));
};

Я согласен с тем, что он должен быть точно настроен, поскольку я сам сказал, что это эллипсоид, поэтому радиус, умножаемый на косинус, меняется. Но это немного точнее. По сравнению с Google Maps это значительно уменьшило ошибку.

5
задан Joel Coehoorn 16 July 2009 в 15:26
поделиться

2 ответа

В listView1_DrawColumnHeader и listView1_DrawItem обработчики событий вы должны поместить это

e.DrawDefault = true;

Это будет использовать реализацию рисования по умолчанию для столбцов и элементов, все, что вам нужно сделать, это написать собственную реализацию только для подэлементов.

0
ответ дан 14 December 2019 в 01:14
поделиться

ObjectListView (оболочка с открытым исходным кодом для .NET WinForms ListView) тривиально поддерживает рисование изображений в столбцах без необходимости рисовать все самостоятельно владельцем. На вкладке «Данные» демонстрации показаны анимированные GIF-файлы, которые немного отличаются от OTT, но будут одинаково хорошо работать со статическими изображениями.

С помощью нескольких строк кода ваш ListView может выглядеть следующим образом: alt text
(источник: sourceforge.net )

2
ответ дан 14 December 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: