@dartcom/ui-kit 10.3.5 → 10.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,7 +24,6 @@ npm run storybook
|
|
|
24
24
|
|
|
25
25
|
- У вас есть аккаунт npm и токен доступа
|
|
26
26
|
|
|
27
|
-
```javascript
|
|
28
27
|
// Проверьте сборку
|
|
29
28
|
npm run build
|
|
30
29
|
|
|
@@ -33,9 +32,116 @@ npm pack
|
|
|
33
32
|
|
|
34
33
|
git push origin v3.8.16
|
|
35
34
|
|
|
36
|
-
Основные
|
|
35
|
+
Основные ссылки
|
|
37
36
|
|
|
38
37
|
```javascript
|
|
39
38
|
https://unpkg.com/leaflet-textpath@1.3.0/leaflet.textpath.js
|
|
40
39
|
```
|
|
41
|
-
|
|
40
|
+
|
|
41
|
+
Ссылка на бибилотеку, которая отвечает за отрисовку текста. Ее нужно подключать отдельно, если в проекте используются подписи по линейной геометрии
|
|
42
|
+
|
|
43
|
+
## Работа с картой
|
|
44
|
+
|
|
45
|
+
- Для начала работы потребуется установить следующие библиотеки:
|
|
46
|
+
|
|
47
|
+
```javascript
|
|
48
|
+
npm i -S react react-dom leaflet react-leaflet @dartcom/ui-kit
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
- Основную часть приложения, где будет использоваться карта, нужно обернуть в **DartcomProviders**:
|
|
52
|
+
|
|
53
|
+
```javascript
|
|
54
|
+
import { DartcomProviders } from '@dartcom/ui-kit';
|
|
55
|
+
|
|
56
|
+
<DartcomProviders
|
|
57
|
+
configOptions={{
|
|
58
|
+
private_key: 'Ваш приватный ключ',
|
|
59
|
+
|
|
60
|
+
apiConfig: {
|
|
61
|
+
baseURL: 'Основной адрес backend',
|
|
62
|
+
},
|
|
63
|
+
}}>
|
|
64
|
+
{...Content}
|
|
65
|
+
</DartcomProviders>;
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**private_key** - ключ доступа к библиотеки, он выдается администрацией и проверяется для доступа как к самой карте, так и к определенным компонентам внтури библиотеки
|
|
69
|
+
|
|
70
|
+
**baseURL** - адрес backend части вашего приложения, куда отсылаются основные запросы
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
- Далее в вашем приложении нужно инициализировать карту leafet внтури основного **DartcomProviders**:
|
|
74
|
+
|
|
75
|
+
```javascript
|
|
76
|
+
import { MapContainer } from 'react-leaflet';
|
|
77
|
+
|
|
78
|
+
<MapContainer center={[51.505, -0.09]} zoom={13} scrollWheelZoom={false}>
|
|
79
|
+
{...Content}
|
|
80
|
+
</MapContainer>;
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- Теперь нужно поместить внутрь MapContainer компонент с нашим слоем:
|
|
84
|
+
|
|
85
|
+
```javascript
|
|
86
|
+
import DartcomLayer from './your-path';
|
|
87
|
+
|
|
88
|
+
import { MapContainer } from 'react-leaflet';
|
|
89
|
+
|
|
90
|
+
<MapContainer center={[51.505, -0.09]} zoom={13} scrollWheelZoom={false}>
|
|
91
|
+
<DartcomLayer />
|
|
92
|
+
|
|
93
|
+
{...Content}
|
|
94
|
+
</MapContainer>;
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- В компоненте нужно инициализировать слой и добавить его на карту как основную подложку:
|
|
98
|
+
|
|
99
|
+
```javascript
|
|
100
|
+
// your-path.tsx
|
|
101
|
+
|
|
102
|
+
import * as React from 'react';
|
|
103
|
+
|
|
104
|
+
import { useMap } from 'react-leaflet';
|
|
105
|
+
|
|
106
|
+
import {
|
|
107
|
+
getAllLayers,
|
|
108
|
+
SourceLayers,
|
|
109
|
+
TangramLayer,
|
|
110
|
+
TangramSourceNames,
|
|
111
|
+
} from '@dartcom/ui-kit';
|
|
112
|
+
|
|
113
|
+
const DartcomLayer: React.FC = () => {
|
|
114
|
+
const map = useMap();
|
|
115
|
+
|
|
116
|
+
React.useEffect(() => {
|
|
117
|
+
const { current: layersControl } = controlRef;
|
|
118
|
+
|
|
119
|
+
const defaultLayers = getAllLayers(TangramSourceNames.TILE);
|
|
120
|
+
|
|
121
|
+
new TangramLayer({
|
|
122
|
+
defaultLayers,
|
|
123
|
+
|
|
124
|
+
eventHandlers: {
|
|
125
|
+
[SourceLayers[name]]: {
|
|
126
|
+
click: ({ properties }) => {},
|
|
127
|
+
hover: ({ properties }) => {},
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
onCreate: ({ layer }) => {
|
|
132
|
+
layer.addTo(map);
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
onDestroy: ({ layer }) => {
|
|
136
|
+
layer.removeFrom(map);
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
}, []);
|
|
140
|
+
|
|
141
|
+
return null;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
export default DartcomLayer;
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
- **defaultLayers** - это основной список слоев, которые можно получить из библиотеки и который будет показываться на карте. В примере мы грузим все слои из ресурса **TangramSourceNames.TILE** с помощью функции **getAllLayers**, но пожно подгружать разные слои из разных ресурсов
|