Как да начертаем геометрия върху карта
За да създадете и покажете геометрични обекти върху карта, трябва първо да създадете обект за геометрия. Има два метода, които можете да използвате:
- Конструктор за всеки тип характеристики на геометрията Този метод включва използването на персонализиран конструктор за всеки тип характеристики на геометрията. Например, за да създадете точка, бихте използвали следния код:
Point point = new Point(40.7128, -74.006);
Въпреки това този метод може да стане предизвикателство и тромав за управление при създаване на сложни обекти като полилинии или колекции. В резултат на това разработчикът може да се нуждае от добавяне на много редове код, което води до намаляване на четимостта на кода. Осигуряването на целостта на данните по време на инициализация също може да бъде трудно. Например, разгледайте следния пример, който създава полигон с дупка вътре:
Polygon polygon = new Polygon();
LinearRing ring = new LinearRing();
ring.AddPoint(50.02, 36.22);
ring.AddPoint(49.99, 36.26);
ring.AddPoint(49.97, 36.23);
ring.AddPoint(49.98, 36.17);
ring.AddPoint(50.02, 36.22);
LinearRing hole = new LinearRing();
hole.AddPoint(50.00, 36.22);
hole.AddPoint(49.99, 36.20);
hole.AddPoint(49.98, 36.23);
hole.AddPoint(50.00, 36.24);
hole.AddPoint(50.00, 36.22);
polygon.ExteriorRing = ring;
polygon.AddInteriorRing(hole);
Друг недостатък на този подход е липсата на единство на данните за инициализация. Не можете да създадете хранилище от константи или файлове във вашия проект.
- WKT (Well-Known Text) Този метод включва генериране на геометрия от WKT (Well-Known Text), което предлага стандартизиран начин за създаване на геометрии. Следният код демонстрира как да се създаде точка и линия:
var point = Geometry.FromText("POINT (23.5, 25.3)");
var line = Geometry.FromText("LINESTRING Z (0.1 0.2 0.3, 1 2 1, 12 23 2)");
Въпреки че този подход може леко да намали производителността поради необходимостта от анализиране на низа, той опростява създаването на по-сложни обекти.
Можете да намерите повече подробности за WKT в следния статия: “Експортиране и импортиране на данни от/към WKT и WKB.”
Показване на геометрични обекти върху картата След като сте създали геометричен обект, следващата стъпка е да го покажете на картата. Въпреки че картата може да показва слоеве, заредени от различни източници и формати, InMemoryLayer е слой, който не изисква източник.
За да покажете своя геометричен обект, можете да създадете InMemoryLayer и да добавите обекта към него:
using (var layer = Drivers.InMemory.CreateLayer())
{
Feature feature = layer.ConstructFeature();
feature.Geometry = Geometry.FromText("POINT (23.5, 25.3)");
layer.Add(feature);
}
Сега можете да покажете този слой на картата и да създадете файл в един от поддържаните формати, като SVG, със следния код:
using (var map = new Map(500, 500))
{
map.Add(layer);
map.Render(filesPath, Renderers.Svg);
}
След като сте добавили слоя и го покажете на картата, можете да го запазите във всеки от поддържаните формати. В този пример е избран форматът SVG, за да се избегнат потенциални проблеми с поддръжката на Bitmap. Важно е да се отбележи, че Net 6.0 има ограничена поддръжка на Bitmap, което може да доведе до ограничения като невъзможност за рендиране на Bitmap изображения с помощта на Blazor WebAsm от страна на клиента. Следователно, когато избирате формат за запазване на вашата карта, е важно да вземете предвид ограниченията на целевата платформа и да изберете формат, който е съвместим с нея.
Статията обяснява как да създадете и покажете геометрични обекти върху карта със стил по подразбиране, обикновен. Въпреки това библиотеката Aspose предлага широк спектър от опции за стилизиране, които могат да бъдат персонализирани, за да отговарят на вашите нужди. За да проучите тези опции, препоръчваме да се консултирате с документацията на Aspose.MapRendering, която предоставя подробна информация за това как да използвате различни техники за стилизиране, за да подобрите визуалната привлекателност на вашата карта.
В обобщение, за да създадете геометрични обекти върху карта, можете да използвате или конструктор за всеки тип характеристики на геометрията, или да генерирате геометрия от WKT. За да покажете обекта, поставете го в слой и покажете слоя на карта в стил по подразбиране. Запазете картата в поддържан формат, като SVG, и използвайте нашата библиотека, за да проучите опциите за стилизиране. Освен това нашата библиотека предоставя възможност да видите завършен пример, като щракнете върху връзката, предоставена в документацията, която може да ви помогне да разберете как да внедрите тези техники във вашите собствени проекти.