Я использую GMAPS в C# (Winforms), и я хотел бы добавить маркер с меткой. Я последовал за ответом на GMAP.NET adding labels underneath markers и заметил, что проблема с реализацией. Маркеры не отображаются в правильном месте, а метки все начертаны друг на друга. Я думаю, что это неправильно назвать метод OnRender для маркера? Может кто-то указать мне верное направление?GMAP.NET, добавляя метки к маркерам
0
A
ответ
0
В этой же проблеме возникла проблема, и только вызов base.OnRender(g);
не исправил ее для меня. Фокус в том, чтобы получить от GMarkerGoogle
вместо GMapMarker
, как это сделано в ответе, который вы указали.
Также мне пришлось сделать некоторые изменения с помощью рендеринга текста. Я придумал это решение, отлично работает для меня:
public class GmapMarkerWithLabel : GMarkerGoogle, ISerializable
{
private readonly Font _font;
private GMarkerGoogle _innerMarker;
private readonly string _caption;
public GmapMarkerWithLabel(PointLatLng p, string caption, GMarkerGoogleType type)
: base(p, type)
{
_font = new Font("Arial", 11);
_innerMarker = new GMarkerGoogle(p, type);
_caption = caption;
}
public override void OnRender(Graphics g)
{
base.OnRender(g);
var stringSize = g.MeasureString(_caption, _font);
var localPoint = new PointF(LocalPosition.X - stringSize.Width/2, LocalPosition.Y + stringSize.Height);
g.DrawString(_caption, _font, Brushes.Black, localPoint);
}
public override void Dispose()
{
if (_innerMarker != null)
{
_innerMarker.Dispose();
_innerMarker = null;
}
base.Dispose();
}
#region ISerializable Members
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
GetObjectData(info, context);
}
protected GmapMarkerWithLabel(SerializationInfo info, StreamingContext context)
: base(info, context)
{ }
#endregion
}
Смежные вопросы
- 1. Удалить метки в gmap.net
- 2. GMAP.NET добавляет метки под маркерами
- 3. GMap.NET + C# + postgreSQL без подключения к Интернету
- 4. Увеличение к указанным маркерам response-native-maps
- 5. Доступ к маркерам KML в Картах Google
- 6. Доступ к нормализованным маркерам документа ElasticSearch
- 7. Анимация не привязываясь к маркерам правильно
- 8. Добавить infoWindows к нескольким маркерам в массиве
- 9. добавление информационных окон к нескольким маркерам
- 10. Проложить маршрут к маркерам Google Maps
- 11. Добавляя вектор к вектору
- 12. добавляя NSMutableDictionary к NSMutableArray
- 13. добавляя .val к автозаполнению
- 14. добавляя нули к LPAD
- 15. Как добавить метки к маркерам в разных кривых на одном графике
- 16. GMap.NET 1.7 Exception Throw
- 17. Наложения в GMap.Net Wpf
- 18. Удаление маркера Gmap.net
- 19. Результаты для цикла не добавляя к переменной
- 20. Центр многоугольника в gmap.net
- 21. GMap.NET C# integration
- 22. Маршрут GMap.NET возвращает null
- 23. провайдеры GMap.NET Satellitemap ошибка
- 24. Маршрут GMap.NET многоцветный
- 25. GMap.NET не показывает карту
- 26. Нарисуйте полилинию в gmap.net
- 27. Почему цвета GMap.NET противоположны?
- 28. Gmap.net с sqlite db
- 29. Многоугольник GMAP.NET с отверстием
- 30. несколько маркеров на gmap.net
Похоже, ошибка, которая была зафиксирована еще несколько лет назад – geocodezip
Интересно, насколько я могу сказать, я использую последнюю версию (1.7.1). Мне удалось исправить проблему размещения маркера, вызвав base.OnRender (g). –