Я разрабатывал приложение ASP.NET Core, используя Entity Core 2.2.Это приложение сохраняет границы местоположения.
Я использую google.maps.drawing.DrawingManager, чтобы позволить пользователям создавать многоугольник для сохранения границ в базе данных сервера SQL с использованием типа данных географии.В будущем мне нужно проверить, находятся ли определенные географические точки внутри или за пределами этого многоугольника.
Ниже приведен код, который вызывает веб-API .NET
function onPolygonComplete(e) {
if (!cancelDrawingShape) {
var Path= e.getPath();
var thisData = {
sPolygon: JSON.stringify(path.getArray()) };
$.ajax({
url: rootPath + 'Location/AddPolygon',
data: thisData,
type: 'POST',
success: function (res) {
e.setMap(null);
removeAllFeatures();
clientGeoFences = res.ClientGeoFences;
refreshData(false);
},
failure: function (res) {
}
});
Вызываемый API
публичная асинхронная задача AddPolygon ([FromForm] строка sPolygon) {
}
Поскольку тип данных Geography не поддерживается в Entity Core, я установил NetTopologySuite (NTS) в соответствии с предложением
https://docs.microsoft.com/en-us/ef/core/modeling/spatial
После создания леса мой класс модели
имеет свойство ниже для типа данных Geography
public IGeometry StoreFence {get;задавать;}
Я пытаюсь найти примеры того, как теперь использовать классы NetTopologySuite для установки свойства StoreFence для сохранения Polygon в базе данных.
Любые примеры сохранения полигонов google.maps.drawing.DrawingManager в столбце типа географии SQL Server в базе данных с использованием Entity Core / NetTopologySuite будут отличными.