У меня есть приложение с GMap.Net, показывающее различные маркеры.Я знаю, как сделать снимок экрана с текущей картой и маркерами:
Dim sImageName As String = DateTime.Now.ToString(Format("yyyyMMdd-HHmmss")) & ".png"
Dim ThisMap As New Bitmap(Form2.myMap.Width, Form2.myMap.Height)
Form2.myMap.DrawToBitmap(ThisMap, New Rectangle(0, 0, Form2.myMap.Width, Form2.myMap.Height))
ThisMap.Save(sImagesFolder & sImageName)
Я хотел бы создать изображение для выбранного маркера.Вместо изображения, представляющего собой всю карту, отображаемую на экране, оно будет располагаться в центре маркера и отображать 100 пикселей в каждом направлении.
Кто-нибудь знает, как это сделать?
Это то, что япопробовал, но это дает мне пустое изображение - ничего не появляется.Я чувствую, что это должно работать ...
Private Sub MyMap_OnMarkerClick(item As GMapMarker, e As Windows.Forms.MouseEventArgs) Handles myMap.OnMarkerClick
SelMarkerX = e.X
SelMarkerY = e.Y
Dim sImageName As String = DateTime.Now.ToString(Format("yyyyMMdd-HHmmss")) & ".png"
Dim ThisMap As New Bitmap(140,100)
myMap.DrawToBitmap(ThisMap, New Rectangle(SelMarkerX - 70, SelMarkerY - 50, 140, 100))
ThisMap.Save(sImagesFolder & sImageName)
End Sub
Я просто не понимаю.Если я напишу:
myMap.DrawToBitmap(ThisMap, New Rectangle(0, 0, 140, 100)
, я получу то, что вы могли ожидать.Я получаю верхний левый угол существующей карты от 0 до 140 по горизонтали и от 0 до 100 по вертикали.Если я изменю это на следующее:
myMap.DrawToBitmap(ThisMap, New Rectangle(10, 0, 140, 100)
, тогда я получу от 0 до 130 по горизонтали, а не от 10 до 140.