我正在使用GMap.net进行谷歌地图,我可以在地图上放置标记。
我希望允许用户自由移动标记以将其放置在地图上的其他位置。
我已经使用了这个代码,其中我使用图像作为标记并添加了事件来移动图像标记,但每当我尝试移动图像时,整个地图就开始移动。 如果有任何可用于标记移动的事件,请建议我。
注意:这适用于WPF
private void PlaceCamera_Click(object sender, RoutedEventArgs e)
{
Double lat = Convert.ToDouble(this.Lattitude.Text);
Double lng = Convert.ToDouble(this.Longitude.Text);
marker = new GMapMarker(new PointLatLng(lat,lng));
Image newImage = new Image();
Canvas.SetZIndex(newImage, 99);
newImage.MouseLeftButtonDown += (ss, ee) =>
{
firstPoint = ee.GetPosition(this);
newImage.CaptureMouse();
};
newImage.MouseMove += (ss, ee) =>
{
if (ee.LeftButton == MouseButtonState.Pressed)
{
//-- Create temp point
Point temp = ee.GetPosition(this);
Point res = new Point(firstPoint.X - temp.X, firstPoint.Y - temp.Y);
//-- Update image location
Canvas.SetLeft(newImage, Canvas.GetLeft(newImage) - res.X);
Canvas.SetTop(newImage, Canvas.GetTop(newImage) - res.Y);
//-- Update first point
firstPoint = temp;
}
};
newImage.MouseUp += (ss, ee) => { newImage.ReleaseMouseCapture(); };
BitmapImage testim = new BitmapImage();
testim.BeginInit();
testim.UriSource = new Uri("F:\\test.png");
testim.EndInit();
newImage.Source = testim;
newImage.Height = 30;
newImage.Width = 30;
marker.Shape = newImage;
MainMap.Markers.Add(marker);
}
答案 0 :(得分:1)
最后,我从以下链接中找到了解决方案
点击[此处](https://github.com/radioman/greatmaps)
观察CustomMarkerDemo.xaml.cs并将其添加到您的程序中。此自定义标记具有我所需的点击事件!