ry-vue-map 0.2.3 → 0.2.5

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.
@@ -0,0 +1,329 @@
1
+ <template>
2
+ <div class="map-box">
3
+ <div v-lmap:loadMap class="map-style"></div>
4
+ <RyMapTool class="ry-map-tool" :class="{
5
+ 'left':!isRight,
6
+ 'right':isRight
7
+ }" v-if="lMap.map && isRyMapTool" @crossHairClick="crossHairClick($event)" :lMap="lMap"
8
+ :isShowRangingTool="isShowRangingTool" :initModifyPolygon="initModifyPolygon"
9
+ :isShowDrawTool="isShowDrawTool" :isRight="isRight" :isCrossHair="isCrossHair" :hideAdd="hideAdd"
10
+ :hidePoint="hidePoint" :hideCancel="hideCancel" :hideDelete="hideDelete" :hideSave="hideSave"
11
+ :hideLine="hideLine" :hideArea="hideArea" :isSwitchMap="isSwitchMap" :isSwitchMapRight="isSwitchMapRight"
12
+ :gpsType="lastMapType" @loadDrawPolygonEvent="loadDrawPolygonEvent($event)" @success="drawSuccess($event)"
13
+ @error="drawError($event)">
14
+ <template>
15
+ <slot name="maptool"></slot>
16
+ </template>
17
+ </RyMapTool>
18
+
19
+ <template v-if="map">
20
+ <slot name="polygon" :mapDto="{map,lMap}">
21
+
22
+ </slot>
23
+
24
+ <slot name="marker" :mapDto="{map,lMap}">
25
+
26
+ </slot>
27
+ </template>
28
+ <!--
29
+ <SwitchMap
30
+ v-if="isSwitchMapTool && isShowSwitchMap"
31
+ :height="switchMapHeight"
32
+ :switchMapDefaultTypeOrLayer="switchMapDefaultTypeOrLayer"
33
+ :mapTypeAndLayer="mapTypeAndLayer"
34
+ class="move-box" :style="{
35
+ top:switchMapPosTop + 'px',
36
+ right:isSwitchMapRight?switchMapPosLeftOrRight + 'px':'none',
37
+ left:!isSwitchMapRight?switchMapPosLeftOrRight + 'px':'none'
38
+ }" :bottom-right="isSwitchMapRight"
39
+ @changeSwitchMap="changeSwitchMap"
40
+ :isDisabled= "isDisabledSwitchMapTabEvent"
41
+ /> -->
42
+ </div>
43
+
44
+
45
+
46
+ </template>
47
+ <script>
48
+ import MapServices from '@/utils/lMapServices.js';
49
+ import MapDto from './../../models/ryOfflineMap/map.js';
50
+ import ViewDto from './../../models/ryMap/view.js';
51
+ import MapToolDto from './../../models/ryMapTool/mapTool.js';
52
+ import RyMapTool from '../../ryMapTool/src/index';
53
+ // import SwitchMap from '../../switchMap/src/newIndex';
54
+ import {
55
+ ViewOptions,
56
+ fitNew,
57
+ caculateLL,
58
+ GPS
59
+ } from 'ry-map';
60
+ export default {
61
+ name: 'RyOfflineMap',
62
+ components: {
63
+ RyMapTool,
64
+ // SwitchMap
65
+ },
66
+ props: {
67
+ ...new MapDto(),
68
+ ...new ViewDto(),
69
+ ...new MapToolDto()
70
+ },
71
+ created() {
72
+
73
+ },
74
+ watch: {
75
+ center(newValue) {
76
+ this.setCenter(newValue);
77
+ },
78
+ bbox(newValue) {
79
+ this.setFit(newValue);
80
+ },
81
+ maxZoom(zoom) {
82
+ this.lMap.setMaxZoom(zoom);
83
+ },
84
+ zoom(zoom) {
85
+ this.lMap.setZoom(zoom);
86
+ },
87
+ minZoom(zoom) {
88
+ this.lMap.setMinZoom(zoom);
89
+ },
90
+ bindMapClick(val) {
91
+ if (this.bindMapClick !== val) {
92
+ this.bindMapClick = val;
93
+ this._bingMapEvent();
94
+ }
95
+ },
96
+ bindMapMoveend(val) {
97
+ if (this.bindMapMoveend !== val) {
98
+ this.bindMapMoveend = val;
99
+ this._bingMapMoveend();
100
+ }
101
+ },
102
+ m(val) {
103
+ this.m = val;
104
+ },
105
+ boundaryModel(val){
106
+ if(!this.map) return;
107
+ }
108
+ },
109
+ data() {
110
+ return {
111
+ lMap: new MapServices(),
112
+ drawPolygon: null,
113
+ mapClick: null,
114
+ map: null,
115
+ moveend: null,
116
+ lastX: 0,
117
+ lastY: 0,
118
+ lastMapType: 0,
119
+ isFirstLoad: false,
120
+ };
121
+ },
122
+
123
+ methods: {
124
+ changeSwitchMap({
125
+ mapType,
126
+ layerType
127
+ }) {
128
+
129
+ this.lMap.selectMapLayer(mapType, layerType);
130
+ this._setMaxZoom(mapType, layerType);
131
+ let _mapType = mapType;
132
+ if (mapType > 1) {
133
+ _mapType = 0;
134
+ }
135
+ if (this.lastMapType == _mapType) return;
136
+
137
+ this.lastMapType = _mapType;
138
+
139
+ const center = this.lMap.getCenter();
140
+ if (center && center.length) {
141
+ if (_mapType == 0) {
142
+ const {
143
+ lon,
144
+ lat
145
+ } = GPS.gcj_decrypt(center[0], center[1]);
146
+ this.lMap.setCenter([lon, lat]);
147
+ } else {
148
+ const {
149
+ lon,
150
+ lat
151
+ } = GPS.gcj_encrypt(center[0], center[1]);
152
+ this.lMap.setCenter([lon, lat]);
153
+ }
154
+ }
155
+ this.$emit('changeSwitchMap', {
156
+ mapType: _mapType,
157
+ layerType,
158
+ type: mapType
159
+ });
160
+ },
161
+ _setMaxZoom(type, layerType) {
162
+ if (type == 2 || layerType == 0) {
163
+ this.setMaxZoom(18);
164
+ // return;
165
+ } else {
166
+ this.setMaxZoom(18);
167
+ }
168
+ },
169
+ async loadMap(el) {
170
+ this.lMap.initOfflineMap(100, {
171
+ el,
172
+ urls:this.urls,
173
+ callback: ({
174
+ map,
175
+ lMap
176
+ }) => {
177
+ lMap.setView(this.center, this.bbox);
178
+ lMap.getView().fit(this.bbox, [
179
+ 50, 50, 50, 50
180
+ ]);
181
+ const {geo,width,color} = this.boundaryModel;
182
+ lMap.initMapMaskEvent(map.getLayers(), geo,width,color);
183
+ }
184
+ });
185
+ },
186
+ _bingMapEvent() {
187
+ if (this.bindMapClick) {
188
+ this._mapClickOnce();
189
+ } else {
190
+ this._mapClickOnce(true);
191
+ }
192
+ },
193
+ _bingMapMoveend() {
194
+ if (this.bindMapMoveend) {
195
+ this._mapMoveend();
196
+ } else {
197
+ this._mapMoveend(true);
198
+ }
199
+ },
200
+ getViewOptions() {
201
+ return {
202
+ projection: this.projection,
203
+ center: this.center,
204
+ zoom: this.zoom,
205
+ minZoom: this.minZoom,
206
+ maxZoom: this.maxZoom,
207
+ };
208
+ },
209
+ setMaxZoom(zoom) {
210
+ this.lMap.setMaxZoom(zoom)
211
+ },
212
+ setMinZoom(zoom) {
213
+ this.lMap.setMinZoom(zoom)
214
+ },
215
+ setZoom(zoom) {
216
+ this.lMap.setZoom(zoom);
217
+ },
218
+ crossHairClick(obj) {
219
+ this.$emit('crossHairClick', obj);
220
+ },
221
+ setCenter(center) {
222
+ this.lMap.setCenter(center, 15);
223
+ },
224
+ setFit(bbox) {
225
+ if (!bbox.length || !this.map) return;
226
+ fitNew(this.map, [bbox]);
227
+ },
228
+ drawSuccess(geo) {
229
+ this.$emit('drawSuccess', geo);
230
+ },
231
+ drawError(obj) {
232
+ this.$emit('drawError', obj);
233
+ },
234
+ _mapClickOnce(isBinClick = false) {
235
+ if (!this.mapClick) {
236
+ this.mapClick = evt => {
237
+ if (evt.dragging) {
238
+ return;
239
+ }
240
+ const pixel = this.map.getEventPixel(evt.originalEvent);
241
+ const hit = this.map.hasFeatureAtPixel(pixel);
242
+ if (hit) {
243
+ const _feature = this.map.forEachFeatureAtPixel(evt.pixel, feature => feature);
244
+ const _id = _feature.getId();
245
+ if (_id === undefined) {
246
+ return;
247
+ }
248
+ this.$emit('mapClick', _id);
249
+ }
250
+ };
251
+ }
252
+ if (isBinClick) {
253
+ this.map.un('click', this.mapClick);
254
+ this.mapClick = null;
255
+ } else {
256
+ this.map.on('click', this.mapClick);
257
+ }
258
+ },
259
+ _mapMoveend(isMoveend = false) {
260
+ this.moveend = e => {
261
+ const [x, y] = this.lMap.getCenter();
262
+ let m = 0;
263
+ if (this.lastX !== x && this.lastY !== y) {
264
+ m = caculateLL(this.lastY, this.lastX, y, x);
265
+ this.$emit('mapMoveend', {
266
+ m,
267
+ oversteSetValue: m >= this.m ? true : false,
268
+ x,
269
+ y,
270
+ e
271
+ });
272
+
273
+ if (m >= this.m) {
274
+ this.lastX = x;
275
+ this.lastY = y;
276
+ }
277
+ return;
278
+ }
279
+ this.$emit('mapMoveend', {
280
+ m,
281
+ oversteSetValue: false,
282
+ x,
283
+ y,
284
+ e
285
+ });
286
+ }
287
+ if (isMoveend) {
288
+ this.map.un('moveend', this.moveend);
289
+ } else {
290
+ this.map.on('moveend', this.moveend);
291
+ }
292
+ },
293
+ loadDrawPolygonEvent(e) {
294
+ this.$emit('loadDrawPolygonEvent', e);
295
+ }
296
+ }
297
+ }
298
+ </script>
299
+
300
+ <style lang="scss" scoped>
301
+ .map-box {
302
+ height: 100%;
303
+ position: relative;
304
+
305
+ &>.map-style {
306
+ height: 100%;
307
+ position: relative;
308
+ width: 100%;
309
+ }
310
+ }
311
+
312
+ .ry-map-tool {
313
+ position: absolute;
314
+ top: 20px;
315
+ }
316
+
317
+ .left {
318
+ left: 30px;
319
+ }
320
+
321
+ .right {
322
+ right: 30px;
323
+ }
324
+
325
+
326
+ .move-box {
327
+ position: absolute;
328
+ }
329
+ </style>
@@ -62,7 +62,7 @@ export default {
62
62
 
63
63
  watch: {
64
64
  switchMapDefaultTypeOrLayer(e){
65
- console.log(e);
65
+
66
66
  if(!e)return;
67
67
  const isCorrect = this.formatToJudge(e);
68
68
  if (!isCorrect) return;
package/src/main.js CHANGED
@@ -5,8 +5,10 @@ import store from './store';
5
5
  import router from './router';
6
6
  import * as directives from '@/directives';
7
7
  import './styles/index.scss';
8
- import RyUI from '../lib/ryui.umd.min';
9
- import { TMapOptions } from 'ry-map';
8
+ // import RyUI from '../lib/ryui.umd.min';
9
+ import {
10
+ TMapOptions
11
+ } from 'ry-map';
10
12
  import './assets/fonts/index.scss';
11
13
  import ElementUI from 'element-ui';
12
14
  import 'element-ui/lib/theme-chalk/index.css';
@@ -18,14 +20,14 @@ Vue.use(ElementUI);
18
20
 
19
21
 
20
22
 
21
- Vue.use(RyUI);
23
+ // Vue.use(RyUI);
22
24
 
23
25
  Object.keys(directives).forEach((key) => {
24
- Vue.use(directives[key]);
26
+ Vue.use(directives[key]);
25
27
  });
26
28
 
27
29
  new Vue({
28
- router,
29
- store,
30
- render: (h) => h(App)
31
- }).$mount('#app');
30
+ router,
31
+ store,
32
+ render: (h) => h(App)
33
+ }).$mount('#app');
@@ -71,7 +71,8 @@ import {
71
71
  BingLayers,
72
72
  BDLayers,
73
73
  LRectangle,
74
- VectorMap
74
+ VectorMap,
75
+ OfflineMap
75
76
  } from 'ry-map';
76
77
 
77
78
  import {
@@ -271,31 +272,31 @@ export default class LMapServices {
271
272
  });
272
273
 
273
274
  }
274
-
275
- async initStaticMap(target,opt){
276
- return await new Promise((res, rej) => {
277
- setTimeout(r => {
278
- const map = new Map({
279
- target,
280
- view: opt.view,
281
- layers:[opt.layer],
282
- });
275
+
276
+ async initStaticMap(target, opt) {
277
+ return await new Promise((res, rej) => {
278
+ setTimeout(r => {
279
+ const map = new Map({
280
+ target,
281
+ view: opt.view,
282
+ layers: [opt.layer],
283
+ });
283
284
  this.map = map;
284
285
  this.layers = [opt.layer];
285
- if (map) {
286
- res(map);
287
- return;
288
- }
289
- rej(null);
290
- }, 30);
291
- });
292
- }
293
-
286
+ if (map) {
287
+ res(map);
288
+ return;
289
+ }
290
+ rej(null);
291
+ }, 30);
292
+ });
293
+ }
294
+
294
295
  getVectorLayerView() {
295
296
  return MapConfig.getVectorLayerView;
296
297
  }
297
-
298
-
298
+
299
+
299
300
 
300
301
  onSetLayers(type) {
301
302
  this.type = type;
@@ -317,7 +318,7 @@ export default class LMapServices {
317
318
  });
318
319
  }
319
320
 
320
- onCreatePolygon(callback,isHideAreaAndKM=false) {
321
+ onCreatePolygon(callback, isHideAreaAndKM = false) {
321
322
  if (this.polygonGeojson) {
322
323
  this.map.removeLayer(this.polygonGeojson);
323
324
  }
@@ -329,7 +330,7 @@ export default class LMapServices {
329
330
  this._lPolygon = new LPolygon(this.map, {
330
331
  strokeColor: 'rgba(255,201,14, 1)',
331
332
  fillColor: 'rgba(255,201,14, 0.4)',
332
- },isHideAreaAndKM);
333
+ }, isHideAreaAndKM);
333
334
  return this._lPolygon;
334
335
  // if (callback) {
335
336
  // callback();
@@ -985,4 +986,27 @@ export default class LMapServices {
985
986
  }
986
987
  }
987
988
 
988
- }
989
+ async initOfflineMap(time, opt) {
990
+ const {
991
+ el,
992
+ urls,
993
+ callback
994
+ } = opt;
995
+ this.lmap = new OfflineMap();
996
+
997
+ setTimeout(async r => {
998
+ const {
999
+ map,
1000
+ layers
1001
+ } = await this.lmap.onLoad(el, urls);
1002
+ this.map = map;
1003
+ this.layers = layers;
1004
+ callback({
1005
+ map,
1006
+ lMap: this.lmap
1007
+ });
1008
+ }, 50);
1009
+
1010
+ }
1011
+
1012
+ }
@@ -0,0 +1,220 @@
1
+ const geo={
2
+ "type": "Feature",
3
+ "geometry": {
4
+ "type": "Polygon",
5
+ "coordinates": [
6
+ [
7
+ [ 119.67626200000007, 30.411241000000075 ],
8
+ [ 119.69915800000001, 30.402166000000079 ],
9
+ [ 119.71613400000001, 30.39117600000003 ],
10
+ [ 119.73067500000002, 30.398106000000041 ],
11
+ [ 119.7506800000001, 30.39121700000004 ],
12
+ [ 119.74503250000009, 30.383796500000074 ],
13
+ [ 119.76391700000011, 30.379153000000031 ],
14
+ [ 119.76967300000001, 30.369868000000054 ],
15
+ [ 119.78688900000009, 30.359312000000045 ],
16
+ [ 119.79402200000004, 30.346635000000049 ],
17
+ [ 119.7998060000001, 30.344826000000069 ],
18
+ [ 119.80170500000008, 30.328284000000053 ],
19
+ [ 119.79502900000011, 30.299908000000073 ],
20
+ [ 119.80317800000012, 30.297774000000061 ],
21
+ [ 119.82153800000003, 30.309218000000044 ],
22
+ [ 119.82866400000012, 30.309597000000053 ],
23
+ [ 119.83197800000005, 30.292003000000079 ],
24
+ [ 119.82310200000006, 30.286261000000025 ],
25
+ [ 119.8243030000001, 30.270993000000033 ],
26
+ [ 119.84811800000011, 30.276168000000041 ],
27
+ [ 119.85811700000011, 30.272661000000028 ],
28
+ [ 119.86315600000012, 30.255692000000067 ],
29
+ [ 119.85856700000011, 30.235644000000036 ],
30
+ [ 119.84019600000011, 30.223558000000025 ],
31
+ [ 119.83131900000001, 30.200431000000037 ],
32
+ [ 119.84819100000004, 30.185598000000027 ],
33
+ [ 119.85059800000011, 30.177749000000063 ],
34
+ [ 119.82481800000005, 30.158945000000074 ],
35
+ [ 119.82645100000002, 30.146072000000061 ],
36
+ [ 119.82136900000012, 30.135856000000047 ],
37
+ [ 119.80970800000011, 30.132954000000041 ],
38
+ [ 119.79984700000011, 30.124744000000078 ],
39
+ [ 119.79726800000003, 30.114137000000028 ],
40
+ [ 119.78616000000011, 30.109795000000076 ],
41
+ [ 119.78514600000005, 30.101785000000064 ],
42
+ [ 119.77533800000003, 30.098794000000055 ],
43
+ [ 119.77437600000008, 30.086999000000048 ],
44
+ [ 119.76260100000002, 30.084566000000052 ],
45
+ [ 119.74255400000004, 30.093901000000074 ],
46
+ [ 119.73130100000003, 30.087280000000078 ],
47
+ [ 119.69657200000006, 30.094581000000062 ],
48
+ [ 119.6748970000001, 30.107651000000033 ],
49
+ [ 119.6674660000001, 30.119073000000071 ],
50
+ [ 119.64695700000004, 30.13329600000003 ],
51
+ [ 119.62818600000003, 30.125261000000023 ],
52
+ [ 119.61138500000004, 30.129588000000069 ],
53
+ [ 119.61092000000008, 30.140131000000054 ],
54
+ [ 119.60038800000007, 30.159310000000062 ],
55
+ [ 119.57588600000008, 30.169926000000032 ],
56
+ [ 119.57841200000007, 30.185012000000029 ],
57
+ [ 119.57269700000006, 30.197145000000035 ],
58
+ [ 119.56638800000007, 30.199508000000037 ],
59
+ [ 119.53042200000004, 30.186428000000035 ],
60
+ [ 119.52520400000003, 30.162615000000073 ],
61
+ [ 119.50057300000003, 30.160970000000077 ],
62
+ [ 119.49857300000008, 30.151482000000044 ],
63
+ [ 119.47852000000012, 30.144246000000066 ],
64
+ [ 119.47457500000007, 30.149131000000068 ],
65
+ [ 119.45861500000001, 30.147826000000066 ],
66
+ [ 119.43610400000011, 30.138055000000065 ],
67
+ [ 119.44204000000002, 30.127930000000049 ],
68
+ [ 119.45280900000012, 30.124712000000045 ],
69
+ [ 119.454293, 30.112077000000056 ],
70
+ [ 119.43168700000001, 30.099302000000023 ],
71
+ [ 119.43484500000011, 30.089468000000068 ],
72
+ [ 119.42447800000002, 30.081582000000026 ],
73
+ [ 119.42731900000001, 30.069670000000031 ],
74
+ [ 119.41773300000011, 30.067629000000068 ],
75
+ [ 119.42825300000004, 30.046846000000073 ],
76
+ [ 119.42509100000007, 30.02693800000003 ],
77
+ [ 119.4283180000001, 30.015434000000027 ],
78
+ [ 119.41528700000004, 29.994103000000052 ],
79
+ [ 119.40011600000003, 29.999512000000038 ],
80
+ [ 119.37804800000004, 29.993052000000034 ],
81
+ [ 119.36337300000002, 30.001126000000056 ],
82
+ [ 119.32920100000001, 30.010182000000043 ],
83
+ [ 119.31663200000003, 30.002188000000046 ],
84
+ [ 119.30035500000008, 29.996612000000027 ],
85
+ [ 119.29427700000008, 30.009642000000042 ],
86
+ [ 119.2854000000001, 30.016152000000034 ],
87
+ [ 119.26537400000007, 30.003455000000031 ],
88
+ [ 119.26017800000011, 30.007990000000063 ],
89
+ [ 119.24327100000005, 30.00115100000005 ],
90
+ [ 119.24118800000008, 29.993168000000026 ],
91
+ [ 119.25003500000003, 29.983720500000061 ],
92
+ [ 119.25001400000008, 29.964580000000069 ],
93
+ [ 119.25449000000003, 29.957965000000058 ],
94
+ [ 119.24988800000006, 29.937864000000047 ],
95
+ [ 119.24168400000008, 29.937127000000032 ],
96
+ [ 119.23125100000004, 29.953021000000035 ],
97
+ [ 119.22626500000001, 29.960879000000034 ],
98
+ [ 119.21170500000005, 29.95849000000004 ],
99
+ [ 119.19670200000007, 29.96447900000004 ],
100
+ [ 119.17924200000005, 29.967926000000034 ],
101
+ [ 119.16930100000002, 29.964625000000069 ],
102
+ [ 119.14410500000008, 29.973010000000045 ],
103
+ [ 119.12681600000008, 29.983990000000063 ],
104
+ [ 119.11384300000009, 29.982809000000032 ],
105
+ [ 119.10492350000004, 30.000014000000078 ],
106
+ [ 119.10924200000011, 30.011768000000075 ],
107
+ [ 119.084607, 30.016124000000048 ],
108
+ [ 119.07175200000006, 30.011037000000044 ],
109
+ [ 119.05360500000006, 30.01153400000004 ],
110
+ [ 119.02981200000011, 30.015765000000044 ],
111
+ [ 119.0202220000001, 30.025874000000044 ],
112
+ [ 119.02500600000008, 30.037475000000029 ],
113
+ [ 119.01106700000003, 30.035091000000079 ],
114
+ [ 118.99969500000009, 30.026784000000077 ],
115
+ [ 118.97609000000011, 30.019584000000066 ],
116
+ [ 118.96847600000001, 30.025123000000065 ],
117
+ [ 118.95495600000004, 30.026279000000045 ],
118
+ [ 118.92427100000009, 30.01245300000005 ],
119
+ [ 118.89316700000006, 30.019854000000066 ],
120
+ [ 118.89772900000003, 30.031693000000075 ],
121
+ [ 118.88573500000007, 30.043890000000033 ],
122
+ [ 118.8924760000001, 30.052251000000069 ],
123
+ [ 118.88326000000006, 30.06499800000006 ],
124
+ [ 118.87057600000003, 30.074639000000047 ],
125
+ [ 118.86771500000009, 30.097991000000036 ],
126
+ [ 118.86396400000001, 30.104057000000068 ],
127
+ [ 118.86672700000008, 30.115602000000024 ],
128
+ [ 118.88234800000009, 30.120049000000051 ],
129
+ [ 118.88381300000003, 30.131056000000058 ],
130
+ [ 118.89111000000003, 30.141413000000057 ],
131
+ [ 118.89193400000011, 30.150697000000036 ],
132
+ [ 118.87614500000007, 30.149402000000066 ],
133
+ [ 118.86193500000002, 30.153802000000042 ],
134
+ [ 118.8472220000001, 30.15248500000007 ],
135
+ [ 118.84072600000002, 30.158662000000049 ],
136
+ [ 118.84792400000004, 30.169114000000036 ],
137
+ [ 118.85950900000012, 30.171588000000042 ],
138
+ [ 118.90595700000006, 30.190121000000033 ],
139
+ [ 118.91579100000001, 30.201655000000073 ],
140
+ [ 118.92438200000004, 30.204539000000068 ],
141
+ [ 118.92128100000002, 30.215285000000051 ],
142
+ [ 118.89834200000007, 30.220551000000057 ],
143
+ [ 118.87317300000007, 30.285321000000067 ],
144
+ [ 118.87720900000011, 30.299820000000068 ],
145
+ [ 118.87429500000008, 30.314778000000047 ],
146
+ [ 118.89490600000011, 30.325199000000055 ],
147
+ [ 118.90345400000001, 30.333408500000075 ],
148
+ [ 118.91301400000009, 30.335067000000038 ],
149
+ [ 118.93146900000011, 30.347694000000047 ],
150
+ [ 118.93156800000008, 30.353429000000062 ],
151
+ [ 118.94926900000007, 30.362918000000036 ],
152
+ [ 118.95504800000003, 30.349863000000028 ],
153
+ [ 118.96409300000005, 30.353901000000064 ],
154
+ [ 118.98351300000002, 30.349036000000069 ],
155
+ [ 118.98335700000007, 30.335338000000036 ],
156
+ [ 119.00208000000009, 30.330166000000077 ],
157
+ [ 119.02361300000007, 30.314966000000027 ],
158
+ [ 119.04168000000004, 30.31553800000006 ],
159
+ [ 119.04558900000006, 30.309042000000034 ],
160
+ [ 119.05772500000012, 30.307247000000075 ],
161
+ [ 119.06815000000006, 30.318161000000032 ],
162
+ [ 119.08494300000007, 30.326277000000061 ],
163
+ [ 119.10572100000002, 30.313540000000046 ],
164
+ [ 119.12320700000009, 30.306975000000079 ],
165
+ [ 119.14599300000009, 30.306877000000043 ],
166
+ [ 119.15145900000005, 30.301817000000028 ],
167
+ [ 119.18300000000011, 30.294005000000027 ],
168
+ [ 119.19587400000012, 30.293389000000047 ],
169
+ [ 119.20051200000012, 30.303930000000037 ],
170
+ [ 119.21745300000009, 30.302006000000063 ],
171
+ [ 119.2240680000001, 30.292080000000055 ],
172
+ [ 119.23303300000009, 30.303781000000072 ],
173
+ [ 119.24079600000005, 30.324027000000058 ],
174
+ [ 119.23485600000004, 30.329441000000031 ],
175
+ [ 119.24200100000007, 30.343219000000033 ],
176
+ [ 119.2599570000001, 30.34048400000006 ],
177
+ [ 119.27302600000007, 30.343994000000066 ],
178
+ [ 119.28433300000006, 30.352051000000074 ],
179
+ [ 119.29551000000004, 30.366064000000051 ],
180
+ [ 119.32386800000006, 30.373848000000066 ],
181
+ [ 119.34950000000004, 30.355901000000074 ],
182
+ [ 119.37355900000011, 30.358867000000032 ],
183
+ [ 119.38089100000002, 30.366166000000078 ],
184
+ [ 119.39469900000006, 30.370054000000039 ],
185
+ [ 119.39774300000011, 30.375559000000067 ],
186
+ [ 119.41286500000001, 30.378342000000032 ],
187
+ [ 119.43492900000001, 30.393492000000037 ],
188
+ [ 119.44643800000006, 30.406729000000041 ],
189
+ [ 119.47862300000008, 30.410623000000044 ],
190
+ [ 119.49371800000006, 30.409184000000039 ],
191
+ [ 119.50809600000002, 30.404077000000029 ],
192
+ [ 119.52845100000002, 30.411842000000036 ],
193
+ [ 119.53029300000003, 30.426490000000058 ],
194
+ [ 119.54681800000003, 30.442263000000025 ],
195
+ [ 119.56103100000007, 30.445895000000064 ],
196
+ [ 119.56796000000009, 30.433856000000048 ],
197
+ [ 119.57695000000001, 30.426184000000035 ],
198
+ [ 119.59307500000011, 30.425014000000033 ],
199
+ [ 119.61323600000003, 30.429904000000079 ],
200
+ [ 119.6323020000001, 30.444399000000033 ],
201
+ [ 119.64088500000003, 30.432412000000056 ],
202
+ [ 119.62625600000001, 30.425864000000047 ],
203
+ [ 119.63116900000011, 30.406186000000048 ],
204
+ [ 119.64498600000002, 30.398021000000028 ],
205
+ [ 119.66259400000001, 30.401658000000054 ],
206
+ [ 119.67626200000007, 30.411241000000075 ]
207
+ ]
208
+ ]
209
+ },
210
+ "properties": {
211
+ "code": "330112",
212
+ "name": "临安区",
213
+ "parent_code": "3301",
214
+ "level": 3,
215
+ "lon": 119.34667114000006,
216
+ "lat": 30.198078622500038
217
+ },
218
+ "bbox": [ 118.84072600000002, 29.937127000000032, 119.86315600000012, 30.445895000000064 ]
219
+ };
220
+ export default geo;