c# - 如何使用 GMap .NET 使用正确的顶点顺序绘制多边形
问题描述
我正在尝试使用从数据库中获取的点列表绘制多边形,在此示例中,它是硬编码的,我无法重新排序数据库中的内容。
我的问题是生成的多边形不占用所有点覆盖的总面积。
这就是我得到的
这就是我需要的
这是我的代码(这些点仅出于测试原因进行硬编码,但这就是我从数据库中得到的并按此顺序)
enter using GMap.NET;
using GMap.NET.WindowsForms;
using GMap.NET.WindowsForms.Markers;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace demoexpansion
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
gmap.MapProvider = GMap.NET.MapProviders.BingMapProvider.Instance;
GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
GMapOverlay polyOverlay = new GMapOverlay("Test");
var points = new List<PointLatLng>
{
new PointLatLng(-3.675462429, -80.66476808),
new PointLatLng(-3.675745365, -80.66514959),
new PointLatLng(-3.675462429, -80.66476808),
new PointLatLng(-3.675232046, -80.66495175),
new PointLatLng(-3.675513755, -80.66532682)
};
GMapPolygon polygon = new GMapPolygon(points, "2");
polygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Red));
polygon.Stroke = new Pen(Color.Red, 3);
polyOverlay.Polygons.Add(polygon);
gmap.Overlays.Add(polyOverlay);
gmap.Position = points[0];
gmap.Zoom = 18;
}
}
}
请问有什么想法吗?:(
解决方案
推荐阅读
- html - div 中的文本越界且文本填充不起作用
- python - 低功耗蓝牙简单代码,发现错误()
- salt-stack - 在 Reactor 文件中使用 Requisites
- windows - 在 Windows 上模拟 HID 设备?
- javascript - 我需要等待我的异步函数,然后返回吗?
- python - 我怎样才能确保我可以打印 0 而不是一个负数来表示敌人在格斗游戏中死亡
- javascript - 使用复选框作为按钮在 jquery 中自动计算总数?
- android - android studio 什么都解决不了?我应该怎么办?
- apache-nifi - HandleHttpResponse 处理器抛出找不到此标识符的 HTTP 响应对象
- regex - .htaccess 重定向所有包含特定目录名称的 url