Wymagania dotyczące pakietu do rysowania
Uwaga
Wycofanie usługi Azure Maps Creator
Usługa mapy wewnętrznej usługi Azure Maps Creator jest teraz przestarzała i zostanie wycofana w dniu 30.09.25. Aby uzyskać więcej informacji, zobacz Ogłoszenie o zakończeniu życia twórcy usługi Azure Maps.
Przekazane pakiety rysunkowe można przekonwertować na dane mapy przy użyciu usługi Azure Maps Conversion. W tym artykule opisano wymagania dotyczące pakietu rysunkowego dla interfejsu API konwersji. Aby wyświetlić przykładowy pakiet, możesz pobrać przykładowy pakiet rysunku.
Wymagania wstępne
Pakiet rysunkowy zawiera rysunki zapisane w formacie DWG, który jest natywnym formatem pliku oprogramowania Autodesk AutoCAD®.
Możesz wybrać dowolne oprogramowanie CAD do tworzenia rysunków w pakiecie rysunkowym.
Usługa konwersji konwertuje pakiet rysunkowy na dane mapy. Usługa konwersji współpracuje z formatem AC1032
pliku AUTOCAD DWG.
Słownik terminów
Aby uzyskać łatwe odwołanie, poniżej przedstawiono niektóre terminy i definicje, które są ważne podczas czytania tego artykułu.
Termin | Definicja |
---|---|
Warstwa | Warstwa USŁUGI DWG programu AutoCAD z pliku rysunkowego. |
Encja | Jednostka AutoCAD DWG z pliku rysunku. |
Odnośnika | Plik w formacie pliku AUTOCAD DWG dołączony do rysunku podstawowego jako odwołanie zewnętrzne. |
Poziom | Obszar budynku na ustawionej wysokości. Na przykład podłoga budynku. |
Funkcja | Wystąpienie obiektu utworzonego z usługi konwersji, które łączy geometrię z informacjami o metadanych. |
Klasy funkcji | Wspólna strategia dotycząca funkcji. Na przykład jednostka jest klasą cech, a biuro jest funkcją. |
Struktura pakietu rysunku
Pakiet rysunkowy to archiwum .zip zawierające następujące pliki:
- Pliki DWG w formacie pliku DWG programu AutoCAD.
- Plik manifest.json opisujący pliki DWG w pakiecie rysunkowym.
Pakiet rysunkowy musi zostać spakowany do pojedynczego pliku archiwum z rozszerzeniem .zip. Pliki DWG można organizować w dowolny sposób wewnątrz pakietu, ale plik manifestu musi znajdować się w katalogu głównym spakowanego pakietu. W następnych sekcjach szczegółowo opisano wymagania dotyczące plików DWG, pliku manifestu i zawartości tych plików. Aby wyświetlić przykładowy pakiet, możesz pobrać przykładowy pakiet rysunkowy.
Proces konwersji plików DWG
Usługa konwersji wykonuje następujące czynności w każdym pliku DWG:
- Wyodrębnia klasy funkcji:
- Poziomy
- Lekcji
- Strefy
- Otwory
- Ściany
- Penetracje w pionie
- Tworzy funkcję obiektu.
- Tworzy minimalny zestaw domyślnych funkcji kategorii, do których odwołuje się inne funkcje:
- pokój
- — struktura
- ściana
- opening.door
- strefa
- Obiektu
Wymagania dotyczące plików DWG
Dla każdego poziomu obiektu wymagany jest pojedynczy plik DWG. Wszystkie dane pojedynczego poziomu muszą znajdować się w jednym pliku DWG. Wszystkie odwołania zewnętrzne (xrefs) muszą być powiązane z rysunkiem nadrzędnym. Na przykład obiekt z trzema poziomami zawiera trzy pliki DWG w pakiecie rysunku.
Każdy plik DWG musi spełniać następujące wymagania:
- Plik DWG musi definiować warstwy Zewnętrzne i Jednostkowe . Opcjonalnie można zdefiniować następujące warstwy: Wall, Door, UnitLabel, Zone i ZoneLabel.
- Plik DWG nie może zawierać funkcji z wielu poziomów.
- Plik DWG nie może zawierać funkcji z wielu obiektów.
- Grupa DWG musi odwoływać się do tego samego systemu pomiaru i jednostki miary co inne pliki DWG w pakiecie rysunkowym.
Wymagania dotyczące warstwy dwG
Każda warstwa DWG musi być zgodna z następującymi regułami:
- Warstwa musi zawierać wyłącznie funkcje pojedynczej klasy. Na przykład jednostki i ściany nie mogą znajdować się w tej samej warstwie.
- Pojedyncza klasa funkcji może być reprezentowana przez wiele warstw.
- Dozwolone są samozabezpieczone wielokąty, ale są automatycznie naprawiane. Po naprawieniu usługa konwersji zgłasza ostrzeżenie. Zaleca się ręczne sprawdzenie naprawionych wyników, ponieważ mogą one nie być zgodne z oczekiwanym wynikiem.
- Każda warstwa ma obsługiwaną listę typów jednostek. Wszystkie inne typy jednostek w warstwie zostaną zignorowane. Na przykład jednostki tekstowe nie są obsługiwane w warstwie ściany.
W poniższej tabeli przedstawiono obsługiwane typy jednostek i przekonwertowane funkcje mapy dla każdej warstwy. Jeśli warstwa zawiera nieobsługiwane typy jednostek, usługa konwersji ignoruje te jednostki.
Warstwa | Typy jednostek | Przekonwertowane funkcje |
---|---|---|
Zewnętrzne | WIELOKĄT, WIELOKĄT (zamknięty), CIRCLE lub ELLIPSE (zamknięty) | Poziomy |
Jednostka | WIELOKĄT, WIELOKĄT (zamknięty), CIRCLE lub ELLIPSE (zamknięty) | Jednostki i penetracje pionowe |
Ściana | WIELOKĄT, WIELOKĄT (zamknięty), OKRĄG LUB WIELOKROPEK (zamknięty), Struktury | |
Drzwi | WIELOKĄT, POLYLINE, LINE, CIRCULARARC, CIRCLE | Otwory |
Strefa | WIELOKĄT, WIELOKĄT (zamknięty), CIRCLE lub ELLIPSE (zamknięty) | Strefy |
UnitLabel | Tekst (pojedynczy wiersz) | Nie dotyczy. Ta warstwa może dodawać właściwości tylko do funkcji jednostki z warstwy Units. Aby uzyskać więcej informacji, zobacz warstwę UnitLabel. |
Etykieta strefy | Tekst (pojedynczy wiersz) | Nie dotyczy. Ta warstwa może dodawać właściwości tylko do funkcji strefy z poziomu warstwy ZonesLayer. Aby uzyskać więcej informacji, zobacz warstwę ZoneLabel. |
W poniższych sekcjach opisano wymagania dotyczące każdej warstwy.
Warstwa zewnętrzna
Plik DWG dla każdego poziomu musi zawierać warstwę, aby zdefiniować obwód tego poziomu. Ta warstwa jest nazywana warstwą zewnętrzną. Jeśli na przykład obiekt zawiera dwa poziomy, musi mieć dwa pliki DWG z warstwą zewnętrzną dla każdego pliku.
Niezależnie od tego, ile rysunków jednostek znajduje się w warstwie zewnętrznej, wynikowy zestaw danych obiektów zawiera tylko jedną funkcję poziomu dla każdego pliku DWG. Dodatkowo:
- Zewnętrzne elementy muszą być rysowane jako WIELOKĄT, POLYLINE (zamknięte), CIRCLE lub ELLIPSE (zamknięte).
- Powierzchnie zewnętrzne mogą się nakładać, ale są rozpuszczane w jednej geometrii.
- Wynikowa funkcja poziomu musi być co najmniej 4 metrów kwadratowych.
- Wynikowa funkcja poziomu nie może być większa niż 400 000 metrów kwadratowych.
Jeśli warstwa zawiera wiele nakładających się funkcji PolyLines, zostaną one rozpuszczone w jedną funkcję poziomu. Zamiast tego, jeśli warstwa zawiera wiele nienakładających się linii poliliniowych, wynikowa funkcja poziomów ma reprezentację wielokątną.
Przykład warstwy zewnętrznej można zobaczyć jako warstwę konspektu w przykładowym pakiecie rysunkowym.
Warstwa jednostkowa
Plik DWG dla każdego poziomu definiuje warstwę zawierającą jednostki. Jednostki są miejscami nawigowalnymi w budynku, takimi jak biura, korytarze, schody i windy. VerticalPenetrationCategory
Jeśli właściwość jest zdefiniowana, jednostki nawigacji obejmujące wiele poziomów, takich jak windy i schody, są konwertowane na funkcje penetracji pionowej. Do funkcji penetracji pionowej nakładających się na siebie przypisano jeden setid
element .
Warstwa Units powinna być zgodna z następującymi wymaganiami:
- Jednostki muszą być rysowane jako POLYGON, POLYLINE (zamknięte), CIRCLE lub ELLIPSE (zamknięte).
- Jednostki muszą znajdować się wewnątrz granic zewnętrznego obwodu obiektu.
- Jednostki nie mogą się nakładać częściowo.
- Jednostki nie mogą zawierać żadnej samozabezpieczonej geometrii.
Nadaj jednostce nazwę, tworząc obiekt tekstowy w warstwie UnitLabel, a następnie umieść obiekt wewnątrz granic jednostki. Aby uzyskać więcej informacji, zobacz warstwę UnitLabel.
Przykład warstwy Units można zobaczyć w przykładowym pakiecie rysunkowym.
Warstwa ściany
Plik DWG dla każdego poziomu może zawierać warstwę, która definiuje fizyczne zakresy ścian, kolumn i innej struktury budynku.
- Ściany muszą być rysowane jako POLYGON, POLYLINE (zamknięte), CIRCLE lub ELLIPSE (zamknięte).
- Warstwa lub warstwy ściany powinny zawierać tylko geometrię interpretowaną jako struktura budynku.
Przykład warstwy Ściany można zobaczyć w przykładowym pakiecie rysunkowym.
Warstwa drzwi
Możesz dołączyć warstwę DWG zawierającą drzwi. Każde drzwi musi nakładać się na krawędź jednostki z warstwy Jednostka.
Otwory drzwi w zestawie danych usługi Azure Maps są reprezentowane jako pojedynczy segment, który nakłada się na wiele granic jednostek. Na poniższych obrazach pokazano, jak usługa Azure Maps konwertuje geometrię warstwy drzwi na funkcje otwierania w zestawie danych.
Warstwa strefy
Plik DWG dla każdego poziomu może zawierać warstwę strefy, która definiuje fizyczne zakresy stref. Strefa to nienawigowalne miejsce, które można nazwać i renderować. Strefy mogą obejmować wiele poziomów i są grupowane razem przy użyciu właściwości zoneSetId.
- Strefy muszą być rysowane jako POLYGON, POLYLINE (zamknięte) lub ELLIPSE (zamknięte).
- Strefy mogą nakładać się na siebie.
- Strefy mogą spaść wewnątrz lub na zewnątrz zewnętrznego obwodu obiektu.
Nazwij strefę, tworząc obiekt tekstowy w warstwie ZoneLabel i umieszczając obiekt tekstowy wewnątrz granic strefy. Aby uzyskać więcej informacji, zobacz warstwa ZoneLabel.
Przykład warstwy strefy można zobaczyć w przykładowym pakiecie rysunkowym.
Warstwa UnitLabel
Plik DWG dla każdego poziomu może zawierać warstwę UnitLabel. Warstwa UnitLabel dodaje właściwość name do jednostek wyodrębnionych z warstwy Jednostka. Jednostki z właściwością name mogą mieć więcej szczegółów określonych w pliku manifestu.
- Etykiety jednostek muszą być jednostkami tekstu jednowierszowego.
- Etykiety jednostek muszą znajdować się całkowicie wewnątrz granic jednostki.
- Jednostki nie mogą zawierać wielu jednostek tekstowych w warstwie UnitLabel.
Przykład warstwy UnitLabel można zobaczyć w przykładowym pakiecie rysunkowym.
Warstwa ZoneLabel
Plik DWG dla każdego poziomu może zawierać warstwę ZoneLabel. Ta warstwa dodaje właściwość name do stref wyodrębnionych z warstwy Strefy. Strefy z właściwością name mogą mieć więcej szczegółów określonych w pliku manifestu.
- Etykiety stref muszą być jednostkami tekstowymi jednowierszowymi.
- Etykiety stref muszą mieścić się w granicach ich strefy.
- Strefy nie mogą zawierać wielu jednostek tekstowych w warstwie ZoneLabel.
Przykład warstwy ZoneLabel można zobaczyć w przykładowym pakiecie rysunkowym.
Wymagania dotyczące pliku manifestu
Folder zip musi zawierać plik manifestu na poziomie głównym katalogu, a plik musi mieć nazwę manifest.json. Opisuje on pliki DWG, aby umożliwić usłudze konwersji analizowanie ich zawartości. Pozyskane są tylko pliki zidentyfikowane przez manifest. Pliki, które znajdują się w folderze zip, ale nie są poprawnie wymienione w manifeście, są ignorowane.
Chociaż istnieją wymagania dotyczące używania obiektów manifestu, nie wszystkie obiekty są wymagane. W poniższej tabeli przedstawiono wymagane i opcjonalne obiekty dla wersji 1.1 usługi konwersji.
Uwaga
O ile nie określono inaczej, wszystkie właściwości z typem właściwości ciągu zezwalają na 100 znaków.
Objekt | Wymagania | opis |
---|---|---|
version |
prawda | Wersja schematu manifestu. Obecnie obsługiwana jest tylko wersja 1.1. |
directoryInfo |
prawda | Przedstawia informacje geograficzne i kontaktowe obiektu. Można go również użyć do nakreślenia informacji geograficznych i kontaktowych użytkownika. |
buildingLevels |
prawda | Określa poziomy budynków i plików zawierających projekt poziomów. |
georeference |
prawda | Zawiera numeryczne informacje geograficzne dla rysunku obiektu. |
dwgLayers |
prawda | Wyświetla listę nazw warstw, a każda warstwa zawiera nazwy własnych funkcji. |
unitProperties |
fałsz | Może służyć do wstawiania większej liczby metadanych dla funkcji jednostki. |
zoneProperties |
fałsz | Może służyć do wstawiania większej liczby metadanych dla funkcji strefy. |
W następnych sekcjach szczegółowo opisano wymagania dotyczące każdego obiektu.
directoryInfo
Właściwość | Type | Wymagania | opis |
---|---|---|---|
name |
string | prawda | Nazwa budynku. |
streetAddress |
string | fałsz | Adres budynku. |
unit |
string | fałsz | Jednostka w budynku. |
locality |
string | fałsz | Nazwa miasta, miasta, obszaru, dzielnicy lub regionu. |
adminDivisions |
Tablica ciągów w formacie JSON | fałsz | Tablica zawierająca oznaczenia adresów. Na przykład: (Kraj, Stan) Użyj kodów krajów ISO 3166 i kodów stanu/terytorium ISO 3166-2. |
postalCode |
string | fałsz | Kod sortowania poczty. |
hoursOfOperation |
string | fałsz | Jest zgodny z formatem godziny otwarcia OSM. |
phone |
string | fałsz | Numer telefonu skojarzony z budynkiem. |
website |
string | fałsz | Witryna internetowa skojarzona z budynkiem. |
nonPublic |
bool | fałsz | Flaga określająca, czy budynek jest otwarty dla publiczności. |
anchorLatitude |
numeryczne | fałsz | Szerokość geograficzna kotwicy obiektu (pushpin). |
anchorLongitude |
numeryczne | fałsz | Długość geograficzna kotwicy obiektu (pushpin). |
anchorHeightAboveSeaLevel |
numeryczne | fałsz | Wysokość parteru obiektu nad poziomem morza, w metrach. |
defaultLevelVerticalExtent numeryczny |
fałsz | Domyślna wysokość (grubość) poziomu tego obiektu do użycia, gdy poziom jest verticalExtent niezdefiniowany. |
buildingLevels
Obiekt buildingLevels
zawiera tablicę JSON poziomów budynków.
Właściwość | Type | Wymagania | opis |
---|---|---|---|
levelName |
string | prawda | Nazwa poziomu opisowego. Na przykład: Piętro 1, Lobby, Niebieski parking lub Piwnica. |
ordinal |
integer | prawda | Określa kolejność poziomów w pionie. Każdy obiekt musi mieć poziom z porządkowym 0. |
heightAboveFacilityAnchor |
numeryczne | fałsz | Wysokość poziomu powyżej kotwicy w metrach. |
verticalExtent |
numeryczne | fałsz | Wysokość od podłogi do sufitu (grubość) poziomu w metrach. |
filename |
string | prawda | Ścieżka systemu plików rysunku CAD dla poziomu budynku. Musi być względem katalogu głównego pliku zip budynku. |
georeference
Właściwość | Type | Wymagania | opis |
---|---|---|---|
lat |
numeryczne | prawda | Reprezentacja dziesiętna stopni szerokości geograficznej na początku rysunku obiektu. Współrzędne źródła muszą znajdować się w WGS84 Web Mercator (EPSG:3857 ). |
lon |
numeryczne | prawda | Reprezentacja dziesiętna długości geograficznej w miejscu rysunku obiektu. Współrzędne źródła muszą znajdować się w WGS84 Web Mercator (EPSG:3857 ). |
angle |
numeryczne | prawda | Kąt zgodnie z ruchem wskazówek zegara, w stopniach, między prawdziwą północą a osią pionową rysunku (Y). |
dwgLayers
Właściwość | Type | Wymagania | opis |
---|---|---|---|
exterior |
tablica ciągów | prawda | Nazwy warstw definiujących profil budynku zewnętrznego. |
unit |
tablica ciągów | fałsz | Nazwy warstw definiujących jednostki. |
wall |
tablica ciągów | fałsz | Nazwy warstw definiujących ściany. |
door |
tablica ciągów | fałsz | Nazwy warstw definiujących drzwi. |
unitLabel |
tablica ciągów | fałsz | Nazwy warstw definiujących nazwy jednostek. |
zone |
tablica ciągów | fałsz | Nazwy warstw definiujących strefy. |
zoneLabel |
tablica ciągów | fałsz | Nazwy warstw definiujących nazwy stref. |
unitProperties
Obiekt unitProperties
zawiera tablicę JSON właściwości jednostki.
Właściwość | Type | Wymagania | opis |
---|---|---|---|
unitName |
string | prawda | Nazwa jednostki do skojarzenia z tym unitProperty rekordem. Ten rekord jest prawidłowy tylko w przypadku znalezienia dopasowania unitName etykiety w warstwach unitLabel . |
categoryName |
string | fałsz | Przeznaczenie lekcji. Lista wartości, z których mogą korzystać podane style renderowania, jest udokumentowana w categories.json. |
occupants |
tablica obiektów directoryInfo | fałsz | Lista osób, które znajdują się w jednostce. |
nameAlt |
string | fałsz | Alternatywna nazwa jednostki. |
nameSubtitle |
string | fałsz | Podtytuł jednostki. |
addressRoomNumber |
string | fałsz | Pokój, jednostka, apartament lub numer apartamentu. |
verticalPenetrationCategory |
string | fałsz | Gdy ta właściwość jest zdefiniowana, wynikowa funkcja jest penetracją pionową (VRT), a nie jednostką. Możesz użyć penetracji pionowej, aby przejść do innych funkcji penetracji pionowej na poziomach powyżej lub poniżej. Penetracja pionowa to nazwa kategorii . Jeśli ta właściwość jest zdefiniowana categoryName , właściwość jest zastępowana elementem verticalPenetrationCategory . |
verticalPenetrationDirection |
string | fałsz | Jeśli verticalPenetrationCategory jest zdefiniowana, opcjonalnie zdefiniuj prawidłowy kierunek podróży. Dozwolone wartości to: lowToHigh , , highToLow both i closed . Domyślna wartość to both . Wartość jest uwzględniana w wielkości liter. |
nonPublic |
bool | fałsz | Wskazuje, czy jednostka jest otwarta dla publicznej wersji. |
isRoutable |
bool | fałsz | Gdy ta właściwość jest ustawiona na false , nie można przejść do lekcji ani za jej pośrednictwem. Domyślna wartość to true . |
isOpenArea |
bool | fałsz | Umożliwia agentowi nawigowania po wejściu do jednostki bez konieczności otwierania dołączonego do lekcji. Domyślnie ta wartość jest ustawiana dla true jednostek bez otworów i false dla jednostek z otworami. Ręczne ustawienie isOpenArea na false wartość w jednostce bez otwierania powoduje wyświetlenie ostrzeżenia, ponieważ wynikowa jednostka nie jest osiągalna przez agenta nawigacji. |
zoneProperties
Obiekt zoneProperties
zawiera tablicę JSON właściwości strefy.
Właściwość | Type | Wymagania | opis |
---|---|---|---|
zoneName | string | prawda | Nazwa strefy do skojarzenia z rekordem zoneProperty . Ten rekord jest prawidłowy tylko w przypadku znalezienia pasującej zoneName etykiety w zoneLabel warstwie strefy. |
categoryName | string | fałsz | Przeznaczenie strefy. Lista wartości, z których mogą korzystać podane style renderowania, jest udokumentowana w categories.json. |
zoneNameAlt | string | fałsz | Alternatywna nazwa strefy. |
zoneNameSubtitle | string | fałsz | Podtytuł strefy. |
zoneSetId | string | fałsz | Ustaw identyfikator, aby ustanowić relację między wieloma strefami, aby można było wykonywać zapytania lub wybierać je jako grupę. Na przykład strefy obejmujące wiele poziomów. |
Przykładowy manifest pakietu rysunkowego
Poniżej znajduje się plik manifestu dla przykładowego pakietu rysunkowego. Przejdź do przykładowego pakietu rysunkowego dla twórcy usługi Azure Maps w witrynie GitHub, aby pobrać cały pakiet.
Plik manifestu
{
"version": "1.1",
"directoryInfo": {
"name": "Contoso Building",
"streetAddress": "Contoso Way",
"unit": "1",
"locality": "Contoso eastside",
"postalCode": "98052",
"adminDivisions": [
"Contoso city",
"Contoso state",
"Contoso country"
],
"hoursOfOperation": "Mo-Fr 08:00-17:00 open",
"phone": "1 (425) 555-1234",
"website": "www.contoso.com",
"nonPublic": false,
"anchorLatitude": 47.636152,
"anchorLongitude": -122.132600,
"anchorHeightAboveSeaLevel": 1000,
"defaultLevelVerticalExtent": 3
},
"buildingLevels": {
"levels": [
{
"levelName": "Basement",
"ordinal": -1,
"filename": "./Basement.dwg"
}, {
"levelName": "Ground",
"ordinal": 0,
"verticalExtent": 5,
"filename": "./Ground.dwg"
}, {
"levelName": "Level 2",
"ordinal": 1,
"heightAboveFacilityAnchor": 3.5,
"filename": "./Level_2.dwg"
}
]
},
"georeference": {
"lat": 47.636152,
"lon": -122.132600,
"angle": 0
},
"dwgLayers": {
"exterior": [
"OUTLINE", "WINDOWS"
],
"unit": [
"UNITS"
],
"wall": [
"WALLS"
],
"door": [
"DOORS"
],
"unitLabel": [
"UNITLABELS"
],
"zone": [
"ZONES"
],
"zoneLabel": [
"ZONELABELS"
]
},
"unitProperties": [
{
"unitName": "B01",
"categoryName": "room.office",
"occupants": [
{
"name": "Joe's Office",
"phone": "1 (425) 555-1234"
}
],
"nameAlt": "Basement01",
"nameSubtitle": "01",
"addressRoomNumber": "B01",
"nonPublic": true,
"isRoutable": true,
"isOpenArea": true
},
{
"unitName": "B02"
},
{
"unitName": "B05",
"categoryName": "room.office"
},
{
"unitName": "STRB01",
"verticalPenetrationCategory": "verticalPenetration.stairs",
"verticalPenetrationDirection": "both"
},
{
"unitName": "ELVB01",
"verticalPenetrationCategory": "verticalPenetration.elevator",
"verticalPenetrationDirection": "high_to_low"
}
],
"zoneProperties":
[
{
"zoneName": "WifiB01",
"categoryName": "Zone",
"zoneNameAlt": "MyZone",
"zoneNameSubtitle": "Wifi",
"zoneSetId": "1234"
},
{
"zoneName": "Wifi101",
"categoryName": "Zone",
"zoneNameAlt": "MyZone",
"zoneNameSubtitle": "Wifi",
"zoneSetId": "1234"
}
]
}
Przekazane pakiety rysunkowe można przekonwertować na dane mapy przy użyciu usługi Azure Maps Conversion. W tym artykule opisano wymagania dotyczące pakietu rysunkowego dla interfejsu API konwersji. Aby wyświetlić przykładowy pakiet, możesz pobrać przykładowy pakiet rysunkowy w wersji 2.
Aby zapoznać się z przewodnikiem dotyczącym przygotowywania pakietu rysunkowego, zobacz Przewodnik po pakiecie rysunku.
Zmiany i poprawki
- Dodano obsługę klas funkcji zdefiniowanych przez użytkownika.
- Uproszczone wymagania dotyczące warstw usługi DWG.
Wymagania wstępne
Pakiet rysunkowy zawiera rysunki zapisane w formacie DWG, który jest natywnym formatem pliku oprogramowania Autodesk AutoCAD®.
Możesz wybrać dowolne oprogramowanie CAD do tworzenia rysunków w pakiecie rysunkowym.
Usługa konwersji konwertuje pakiet rysunkowy na dane mapy. Usługa konwersji współpracuje z formatem pliku AUTOCAD DWG AC1032.
Słownik terminów
Aby uzyskać łatwe odwołanie, poniżej przedstawiono niektóre terminy i definicje, które są ważne podczas czytania tego artykułu.
Termin | Definicja |
---|---|
Warstwa | Warstwa USŁUGI DWG programu AutoCAD z pliku rysunkowego. |
Encja | Jednostka AutoCAD DWG z pliku rysunku. |
Odnośnika | Plik w formacie pliku AUTOCAD DWG dołączony do rysunku podstawowego jako odwołanie zewnętrzne. |
Poziom | Obszar obiektu na ustalonej wysokości. Na przykład podłoga obiektu. |
Funkcja | Wystąpienie obiektu utworzonego z usługi konwersji, które łączy geometrię z informacjami o metadanych. |
Klasy funkcji | Wspólna strategia dotycząca funkcji. |
Struktura pakietu rysunku
Pakiet rysunkowy to archiwum ZIP zawierające następujące pliki:
- Pliki DWG w formacie pliku DWG programu AutoCAD.
- Plik manifest.json opisujący pliki DWG w pakiecie rysunkowym.
Pakiet rysunku musi być skompresowany do pojedynczego pliku archiwum z rozszerzeniem .zip. Pliki DWG można organizować w dowolny sposób wewnątrz pakietu rysunku, ale plik manifestu musi znajdować się w katalogu głównym. W następnych sekcjach opisano proces konwersji i wymagania dotyczące plików DWG i manifestu oraz zawartość tych plików. Aby wyświetlić przykładowy pakiet, możesz pobrać przykładowy pakiet rysunkowy w wersji 2.
Proces konwersji plików DWG
Usługa konwersji usługi Azure Maps konwertuje pliki DWG obiektu na mapowanie danych reprezentujących obiekt i funkcje obiektu.
Usługa konwersji usługi Azure Maps tworzy:
- Funkcja obiektu: funkcja najwyższego poziomu obiektu, z którą są skojarzone wszystkie poziomy obiektu.
- Funkcje na poziomie: jedna funkcja na poziomie jest tworzona dla każdego piętra obiektu. Wszystkie funkcje na poziomie są skojarzone z poziomem.
- Funkcje zdefiniowane przez użytkownika: warstwy DWG są mapowane na klasę funkcji zdefiniowaną przez użytkownika i stają się wystąpieniami klasy funkcji.
Wymagania dotyczące plików DWG
Każdy plik DWG musi spełniać następujące wymagania:
- Plik DWG nie może zawierać funkcji z wielu obiektów.
- Plik DWG nie może zawierać funkcji z wielu poziomów. Na przykład obiekt z trzema poziomami zawiera trzy pliki DWG w pakiecie rysunku.
- Wszystkie dane pojedynczego poziomu muszą znajdować się w jednym pliku DWG. Wszystkie odwołania zewnętrzne (xrefs) muszą być powiązane z rysunkiem nadrzędnym.
- Plik DWG musi definiować warstwy reprezentujące granicę tego poziomu.
- Grupa DWG musi odwoływać się do tego samego systemu pomiaru i jednostki miary co inne pliki DWG w pakiecie rysunkowym.
- Plik DWG musi być wyrównany w przypadku stosu na innym poziomie z tego samego obiektu.
Wymagania dotyczące warstwy dwG
Klasy funkcji
Co najmniej jedna warstwa DWG może zostać zamapowana na klasę funkcji zdefiniowaną przez użytkownika. Jedno wystąpienie funkcji jest tworzone na podstawie jednostki na mapowanej warstwie. Na przykład warstwy DWG krzesło, stół i kanapa są mapowane na klasę cech o nazwie meble. Funkcja mebli jest tworzona dla każdej jednostki ze zdefiniowanych warstw. Dodatkowo:
- Wszystkie warstwy powinny być oddzielone, aby reprezentować różne typy cech obiektu.
- Wszystkie jednostki muszą należeć do granic obwodu poziomu.
- Obsługiwane typy jednostek AutoCAD: TEXT, MTEXT, POINT, ARC, CIRCLE, LINE, POLYLINE, ELLIPSE.
Właściwości klasy funkcji
Jednostki tekstowe, które mieszczą się w granicach zamkniętego kształtu, mogą być skojarzone z tą funkcją jako właściwością. Na przykład klasa funkcji pokoju może zawierać tekst opisujący nazwę pokoju i inny przykładowy pakiet rysunkowy typu pokój w wersji 2. Dodatkowo:
- Tylko jednostki TEXT i MTEXT są skojarzone z tą funkcją jako właściwością. Wszystkie inne typy jednostek są ignorowane.
- Punkt uzasadnienia TEXT i MTEXT musi mieścić się w granicach zamkniętego kształtu.
- Jeśli więcej niż jedna właściwość TEXT znajduje się w granicach zamkniętego kształtu, a obie są mapowane na jedną właściwość, jest wybierana losowo.
Poziom obiektu
Plik DWG dla każdego poziomu musi zawierać warstwę, aby zdefiniować obwód tego poziomu. Jeśli na przykład obiekt zawiera dwa poziomy, musi mieć dwa pliki DWG, z których każda ma warstwę definiującą obwód tego poziomu.
Niezależnie od tego, ile rysunków jednostek znajduje się w warstwie obwodowej na poziomie, wynikowy zestaw danych obiektów zawiera tylko jedną funkcję poziomu dla każdego pliku DWG. Dodatkowo:
- Obwody poziome muszą być rysowane jako POLYGON, POLYLINE (zamknięte), CIRCLE lub ELLIPSE (zamknięte).
- Obwody poziome mogą się nakładać, ale są rozpuszczane w jednej geometrii.
- Wynikowa funkcja poziomu musi być co najmniej 4 metrów kwadratowych.
- Wynikowa funkcja poziomu nie może być większa niż 400 000 metrów kwadratowych.
Jeśli warstwa zawiera wiele nakładających się funkcji POLYLINES, są one łączone w pojedynczą funkcję poziomu. Zamiast tego, jeśli warstwa zawiera wiele nienalewnych linii poliliniowych, wynikowa funkcja poziomów ma reprezentację wielokątną.
Przykład warstwy obwodowej Poziom można zobaczyć jako warstwę GROS$
w przykładowym pakiecie rysunkowym w wersji 2.
Wymagania dotyczące pliku manifestu
Pakiet rysunkowy musi zawierać plik manifestu na poziomie głównym, a plik musi mieć nazwę manifest.json. Opisuje on pliki DWG umożliwiające usłudze konwersji analizowanie ich zawartości. Używane są tylko pliki zidentyfikowane przez manifest. Pliki, które znajdują się w pakiecie rysunku, ale nie są poprawnie wymienione w manifeście, są ignorowane.
Ścieżki plików w obiekcie buildingLevels pliku manifestu muszą być względem katalogu głównego pakietu rysunku. Nazwa pliku DWG musi być dokładnie zgodna z nazwą poziomu obiektu. Na przykład plik DWG dla poziomu "Piwnica" jest Basement.dwg. Plik DWG dla poziomu 2 ma nazwę level_2.dwg. Nazwy plików nie mogą zawierać spacji. Możesz użyć podkreślenia, aby zamienić spacje.
Chociaż istnieją wymagania dotyczące używania obiektów manifestu, nie wszystkie obiekty są wymagane. W poniższej tabeli przedstawiono wymagane i opcjonalne obiekty dla usługi konwersji 2023-03-01-preview.
Uwaga
O ile nie określono inaczej, wszystkie właściwości ciągu są ograniczone do tysiąca znaków.
Plik JSON manifestu
Właściwość | Type | Wymagania | Opis |
---|---|---|---|
version |
string | PRAWDA | Wersja schematu manifestu. Obecnie wersja "2.0" |
buildingLevels |
BuildingLevels , obiekt | PRAWDA | Określa poziomy obiektu i pliki zawierające projekt poziomów. |
featureClasses |
Tablica obiektów featureClass | PRAWDA | Lista obiektów klasy cech definiujących sposób odczytywania warstw z pliku rysunkowego DWG. |
georeference |
Obiekt georeferencji | FAŁSZ | Zawiera numeryczne informacje geograficzne dla rysunku obiektu. |
facilityName |
string | FAŁSZ | Nazwa obiektu. |
W następnych sekcjach szczegółowo opisano wymagania dotyczące każdego obiektu.
buildingLevels
Właściwość | Type | Wymagania | opis |
---|---|---|---|
dwgLayers |
Tablica ciągów | PRAWDA | Nazwy warstw, które definiują zewnętrzny profil obiektu. |
levels |
Tablica obiektów poziomów | PRAWDA | Poziom odnosi się do unikatowej podłogi w obiekcie zdefiniowanym w pliku DWG, wysokości każdego poziomu i kolejności pionowej, w której się pojawiają. |
poziom
Właściwość | Type | Wymagania | opis |
---|---|---|---|
levelName |
string | PRAWDA | Nazwa poziomu. Na przykład: Piętro 1, Lobby, Niebieski parking lub Piwnica. |
ordinal |
integer | PRAWDA | Definiuje kolejność poziomów w pionie. Wszystkie ordinal wartości muszą być unikatowe w obiekcie. |
filename |
string | PRAWDA | Ścieżka i nazwa pliku DWG reprezentującego poziom w obiekcie. Ścieżka musi być względna względem katalogu głównego pakietu rysunkowego. |
verticalExtent |
Liczba | FAŁSZ | Wysokość pionowa od podłogi do sufitu (grubość) poziomu w metrach. |
featureClass
Właściwość | Type | Wymagania | opis |
---|---|---|---|
dwgLayers |
Tablica ciągów | PRAWDA | Nazwa każdej warstwy definiującej klasę cech. Każda jednostka w określonej warstwie jest konwertowana na wystąpienie klasy cech. dwgLayer Nazwa, z której jest konwertowana funkcja, kończy się właściwością tej funkcji. |
featureClassName |
String | PRAWDA | Nazwa klasy funkcji. Typowe przykłady obejmują pokój, obszar roboczy lub ścianę. |
featureClassProperties |
Tablica obiektów featureClassProperty | FAŁSZ | Określa warstwy tekstowe w pliku DWG skojarzone z funkcją jako właściwość. Na przykład etykieta, która znajduje się wewnątrz granic przestrzeni, takiej jak numer pokoju. |
featureClassProperty
Właściwość | Type | Wymagania | opis |
---|---|---|---|
dwgLayers |
Tablica ciągów | PRAWDA | Nazwa każdej warstwy definiującej właściwość klasy cech. Każda jednostka w określonej warstwie jest konwertowana na właściwość. Tylko jednostki DWG TEXT i MTEXT są konwertowane na właściwości. Wszystkie inne jednostki są ignorowane. |
featureClassPropertyName |
String | PRAWDA | Nazwa właściwości klasy funkcji, na przykład spaceName lub spaceUseType. |
georeferencja
Właściwość | Type | Wymagania | opis |
---|---|---|---|
lat |
Liczba | PRAWDA | Reprezentacja dziesiętna stopni szerokości geograficznej na początku rysunku obiektu. Współrzędne pochodzenia muszą znajdować się w WGS84 Web Mercator (EPSG:3857). |
lon |
Liczba | PRAWDA | Reprezentacja dziesiętna długości geograficznej w miejscu rysunku obiektu. Współrzędne pochodzenia muszą znajdować się w WGS84 Web Mercator (EPSG:3857). |
angle |
Liczba | PRAWDA | Kąt zgodnie z ruchem wskazówek zegara, w stopniach, między prawdziwą północą a osią pionową rysunku (Y). |
Przykładowy manifest pakietu rysunkowego
W tym przykładzie kod JSON przedstawia plik manifestu dla przykładowego pakietu rysunku. Przejdź do przykładowego pakietu rysunkowego w wersji 2 dla twórcy usługi Azure Maps w witrynie GitHub, aby pobrać cały pakiet.
Plik manifestu
{
"version": "2.0",
"buildingLevels": {
"dwgLayers": [
"GROS$"
],
"levels": [
{
"filename": "Ground.dwg",
"levelName": "level 1",
"ordinal": 0
},
{
"filename": "Level_2.dwg",
"levelName": "level 2",
"ordinal": 1
}
]
},
"georeference": {
"lat": 47.63529901,
"lon": -122.13355885,
"angle": 0
},
"featureClasses": [
{
"featureClassName": "room",
"dwgLayers": [
"RM$"
],
"featureClassProperties": [
{
"featureClassPropertyName": "name",
"dwgLayers": [
"A-IDEN-NUMR-EXST"
]
},
{
"featureClassPropertyName": "roomType",
"dwgLayers": [
"A-IDEN-NAME-EXST"
]
}
]
},
{
"featureClassName": "wall",
"dwgLayers": [
"A-WALL-EXST",
"A-WALL-CORE-EXST",
"A-GLAZ-SILL-EXST",
"A-GLAZ-SHEL-SILL-EXST",
"A-GLAZ-SHEL-EXST",
"A-GLAZ-EXST"
]
},
{
"featureClassName": "workspace",
"dwgLayers": [
"A-BOMA"
]
},
{
"featureClassName": "workspaceFurniture",
"dwgLayers": [
"A-FURN-SYTM-EXST"
]
},
{
"featureClassName": "buildingFurniture",
"dwgLayers": [
"A-FURN-FREE-EXST"
]
}
],
"facilityName": "Contoso Building"
}
Następne kroki
Aby zapoznać się z przewodnikiem dotyczącym przygotowywania pakietu rysunkowego, zobacz przewodnik po pakiecie rysunkowym.