地图文件

master
许宏杰 9 months ago
parent c05116eafc
commit 45e5ac7d4c

@ -0,0 +1,87 @@
{
"type" : "FeatureCollection",
"crs" : {
"type" : "name",
"properties" : {
"name" : "EPSG:4490"
}
},
"features" : [
{
"type" : "Feature",
"id" : 202,
"geometry" : {
"type" : "Polygon",
"coordinates" : [
[
[
121.15210206300003,
31.453490119000094
],
[
121.15130613400015,
31.45483670700014
],
[
121.15030696000008,
31.456521351000049
],
[
121.14706991800017,
31.454924208000193
],
[
121.14324918900013,
31.45304202400024
],
[
121.14528287800022,
31.450400786000159
],
[
121.1461368790001,
31.449216880000108
],
[
121.14660267700015,
31.448841845000061
],
[
121.1493941870001,
31.450028493000218
],
[
121.15117412200004,
31.450787285000104
],
[
121.15124973500019,
31.450653987000067
],
[
121.1532992880002,
31.451514098000075
],
[
121.15330743900006,
31.451544017000174
],
[
121.15250676300013,
31.452819680000118
],
[
121.15210206300003,
31.453490119000094
]
]
]
},
"properties" : {
"FID" : 201,
"Id" : 202,
"name" : "大庆锦绣新城"
}
}
]
}

@ -0,0 +1,353 @@
{
"type" : "FeatureCollection",
"crs" : {
"type" : "name",
"properties" : {
"name" : "EPSG:4490"
}
},
"features" : [
{
"type" : "Feature",
"id" : 0,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.10947197200005,
31.456474306000075
]
},
"properties" : {
"FID" : 0,
"OBJECTID" : 1,
"Id" : 0,
"娄东社区" : "太平居民委员会",
"办公地点" : "向阳东路11号"
}
},
{
"type" : "Feature",
"id" : 1,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.11437667300004,
31.44781344900008
]
},
"properties" : {
"FID" : 1,
"OBJECTID" : 2,
"Id" : 0,
"娄东社区" : "惠阳居民委员会",
"办公地点" : "太平南路与康福路交叉口东50米"
}
},
{
"type" : "Feature",
"id" : 2,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.11753281000006,
31.465022260000069
]
},
"properties" : {
"FID" : 2,
"OBJECTID" : 3,
"Id" : 0,
"娄东社区" : "东郊居民委员会",
"办公地点" : "郑和中路与半泾南路交叉路口往西北约100米华荣园南?"
}
},
{
"type" : "Feature",
"id" : 3,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.10642910100012,
31.461001298000042
]
},
"properties" : {
"FID" : 3,
"OBJECTID" : 4,
"Id" : 0,
"娄东社区" : "洋沙居民委员会",
"办公地点" : "洋沙弄与庆阳路交汇处附近东南"
}
},
{
"type" : "Feature",
"id" : 4,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.11915253600012,
31.442585473000065
]
},
"properties" : {
"FID" : 4,
"OBJECTID" : 5,
"Id" : 0,
"娄东社区" : "朝阳居民委员会",
"办公地点" : "岳阳路65号"
}
},
{
"type" : "Feature",
"id" : 5,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.13350127000001,
31.459166517000028
]
},
"properties" : {
"FID" : 5,
"OBJECTID" : 6,
"Id" : 0,
"娄东社区" : "太东社区居民委员会",
"办公地点" : "万和路1号"
}
},
{
"type" : "Feature",
"id" : 6,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.12905196400004,
31.492983860000038
]
},
"properties" : {
"FID" : 6,
"OBJECTID" : 7,
"Id" : 0,
"娄东社区" : "花北社区居民委员会",
"办公地点" : "南京东路200号"
}
},
{
"type" : "Feature",
"id" : 7,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.13413055500007,
31.48513478600006
]
},
"properties" : {
"FID" : 7,
"OBJECTID" : 8,
"Id" : 0,
"娄东社区" : "荷塘社区居民委员会",
"办公地点" : "兴业北路133号"
}
},
{
"type" : "Feature",
"id" : 8,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.13842722400011,
31.461390605000076
]
},
"properties" : {
"FID" : 8,
"OBJECTID" : 9,
"Id" : 0,
"娄东社区" : "太胜社区居民委员会",
"办公地点" : "世福二园内"
}
},
{
"type" : "Feature",
"id" : 9,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.12742742100011,
31.488123655000038
]
},
"properties" : {
"FID" : 9,
"OBJECTID" : 10,
"Id" : 0,
"娄东社区" : "香花桥社区居民委员会",
"办公地点" : "五洲西路58号"
}
},
{
"type" : "Feature",
"id" : 10,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.09563946200001,
31.469885880000049
]
},
"properties" : {
"FID" : 10,
"OBJECTID" : 11,
"Id" : 0,
"娄东社区" : "华盛园社区居民委员会",
"办公地点" : "毛太路与兰州路交叉路口往东约50米华盛园"
}
},
{
"type" : "Feature",
"id" : 11,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.14594528000009,
31.457378301000062
]
},
"properties" : {
"FID" : 11,
"OBJECTID" : 12,
"Id" : 0,
"娄东社区" : "娄江社区居民委员会",
"办公地点" : "常胜南路18号"
}
},
{
"type" : "Feature",
"id" : 12,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.1277129560001,
31.447093744000028
]
},
"properties" : {
"FID" : 12,
"OBJECTID" : 13,
"Id" : 0,
"娄东社区" : "滨河社区居民委员会",
"办公地点" : "世纪苑小区西门"
}
},
{
"type" : "Feature",
"id" : 13,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.14611008800011,
31.457147618000079
]
},
"properties" : {
"FID" : 13,
"OBJECTID" : 14,
"Id" : 0,
"娄东社区" : "景瑞社区居民委员会",
"办公地点" : "常胜南路18号"
}
},
{
"type" : "Feature",
"id" : 14,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.08547262400009,
31.469171860000074
]
},
"properties" : {
"FID" : 14,
"OBJECTID" : 15,
"Id" : 0,
"娄东社区" : "城北社区居民委员会",
"办公地点" : "华盛八园会所"
}
},
{
"type" : "Feature",
"id" : 15,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.14344444200003,
31.45372543700006
]
},
"properties" : {
"FID" : 15,
"OBJECTID" : 16,
"Id" : 0,
"娄东社区" : "浦溪社区居民委员会",
"办公地点" : "滨河路96号"
}
},
{
"type" : "Feature",
"id" : 16,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.13676868700009,
31.464796686000057
]
},
"properties" : {
"FID" : 16,
"OBJECTID" : 17,
"Id" : 0,
"娄东社区" : "裕珑社区居民委员会",
"办公地点" : "娄江南路100号浴沁庭会所南侧"
}
},
{
"type" : "Feature",
"id" : 17,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.09838082800002,
31.467528630000061
]
},
"properties" : {
"FID" : 17,
"OBJECTID" : 18,
"Id" : 0,
"娄东社区" : "柳园社区居民委员会",
"办公地点" : "滨河雅苑内"
}
},
{
"type" : "Feature",
"id" : 18,
"geometry" : {
"type" : "Point",
"coordinates" : [
121.10911069600002,
31.460719788000063
]
},
"properties" : {
"FID" : 18,
"OBJECTID" : 19,
"Id" : 0,
"娄东社区" : "丽景社区居民委员会",
"办公地点" : "丽景嘉园内"
}
}
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,107 @@
{
"type" : "FeatureCollection",
"crs" : {
"type" : "name",
"properties" : {
"name" : "EPSG:4490"
}
},
"features" : [
{
"type" : "Feature",
"id" : 201,
"geometry" : {
"type" : "Polygon",
"coordinates" : [
[
[
121.14996546000009,
31.449507692000054,
0,
null
],
[
121.15394217100004,
31.451362261000043,
0,
null
],
[
121.15237992200002,
31.453754060000051,
0,
null
],
[
121.15157090200012,
31.454992614000048,
0,
null
],
[
121.15053158300009,
31.45658368200003,
0,
null
],
[
121.15040434100001,
31.456778468000039,
0,
null
],
[
121.14697517400009,
31.455067955000061,
0,
null
],
[
121.14367343700007,
31.453341342000044,
0,
null
],
[
121.14307333700003,
31.453121585000076,
0,
null
],
[
121.14246134100006,
31.452889928000047,
0,
null
],
[
121.14460465500008,
31.450021865000053,
0,
null
],
[
121.14625117500009,
31.447768978000056,
0,
null
],
[
121.14996546000009,
31.449507692000054,
0,
null
]
]
]
},
"properties" : {
"FID" : 201,
"Shape_Leng" : 0.030180652771500002,
"Shape_Area" : 5.4399586747699999e-05,
"CMC" : "娄江社区",
"DZWHMC" : "娄东街道"
}
}
]
}

@ -0,0 +1,521 @@
{
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "EPSG:4490"
}
},
"features": [
{
"type": "Feature",
"id": 1,
"geometry": {
"type": "Point",
"coordinates": [121.15609031366705, 31.460306345661394]
},
"properties": {
"OBJECTID": 1,
"FeatureID": 88,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "十八港",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -51.225697107114605,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 1
}
},
{
"type": "Feature",
"id": 2,
"geometry": {
"type": "Point",
"coordinates": [121.10322993256545, 31.48568046997777]
},
"properties": {
"OBJECTID": 2,
"FeatureID": 34,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "半泾河",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -55.150264229828302,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 2
}
},
{
"type": "Feature",
"id": 3,
"geometry": {
"type": "Point",
"coordinates": [121.13159141001563, 31.541451759591098]
},
"properties": {
"OBJECTID": 3,
"FeatureID": 112,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "杨林塘",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 26.188450191024611,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 3
}
},
{
"type": "Feature",
"id": 4,
"geometry": {
"type": "Point",
"coordinates": [121.08797650491181, 31.431213867036413]
},
"properties": {
"OBJECTID": 4,
"FeatureID": 6,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "新浏河",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 13.807256236938171,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 4
}
},
{
"type": "Feature",
"id": 5,
"geometry": {
"type": "Point",
"coordinates": [121.11018819318064, 31.498479895630756]
},
"properties": {
"OBJECTID": 5,
"FeatureID": 74,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "娄江河",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -53.018239902652788,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 5
}
},
{
"type": "Feature",
"id": 6,
"geometry": {
"type": "Point",
"coordinates": [121.10219794038267, 31.446293306790722]
},
"properties": {
"OBJECTID": 6,
"FeatureID": 52,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "盐铁塘",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -47.457436397292796,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 6
}
},
{
"type": "Feature",
"id": 8,
"geometry": {
"type": "Point",
"coordinates": [121.11843550839205, 31.453212017021031]
},
"properties": {
"OBJECTID": 8,
"FeatureID": 16,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "",
"FontName": "东城河",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -38.487982176642745,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 8
}
},
{
"type": "Feature",
"id": 9,
"geometry": {
"type": "Point",
"coordinates": [121.09897302008892, 31.501149737470485]
},
"properties": {
"OBJECTID": 9,
"FeatureID": 89,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "湖川塘",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 28.265573907345733,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 9
}
},
{
"type": "Feature",
"id": 10,
"geometry": {
"type": "Point",
"coordinates": [121.10072642458486, 31.46671966997683]
},
"properties": {
"OBJECTID": 10,
"FeatureID": 28,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "城北河",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 22.706035040579994,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 10
}
},
{
"type": "Feature",
"id": 11,
"geometry": {
"type": "Point",
"coordinates": [121.10699536844152, 31.462086081807286]
},
"properties": {
"OBJECTID": 11,
"FeatureID": 27,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "",
"FontName": "通城河",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -53.018283232271365,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 11
}
},
{
"type": "Feature",
"id": 12,
"geometry": {
"type": "Point",
"coordinates": [121.09141686949295, 31.482471087470742]
},
"properties": {
"OBJECTID": 12,
"FeatureID": 61,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "纵一河",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -49.877022231590921,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 12
}
},
{
"type": "Feature",
"id": 13,
"geometry": {
"type": "Point",
"coordinates": [121.08557054594405, 31.499971510476882]
},
"properties": {
"OBJECTID": 13,
"FeatureID": 83,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "半泾河",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -58.828075016068453,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 13
}
},
{
"type": "Feature",
"id": 14,
"geometry": {
"type": "Point",
"coordinates": [121.05782208921812, 31.54263323493592]
},
"properties": {
"OBJECTID": 14,
"FeatureID": 111,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "半泾河",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -72.733129249859843,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 14
}
},
{
"type": "Feature",
"id": 15,
"geometry": {
"type": "Point",
"coordinates": [121.13546569568541, 31.411531458310208]
},
"properties": {
"OBJECTID": 15,
"FeatureID": 1,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "盐铁塘",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -53.508266682401526,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 15
}
},
{
"type": "Feature",
"id": 17,
"geometry": {
"type": "Point",
"coordinates": [121.03169904917183, 31.468963707409216]
},
"properties": {
"OBJECTID": 17,
"FeatureID": 40,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "湖川塘",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 28.879178407779097,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 17
}
}
]
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,617 @@
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.13848065216041, 31.5258859051105]
},
"properties": {
"OBJECTID": 1,
"FeatureID": 1,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "苏昆太高速",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 26.99952478868826,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "苏昆太高速",
"ORIG_FID": 1
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.1095703268592, 31.542675573219185]
},
"properties": {
"OBJECTID": 2,
"FeatureID": 2,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "沈海高速",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 313,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "沈海高速",
"ORIG_FID": 2
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.0895464343206, 31.51329206807452]
},
"properties": {
"OBJECTID": 3,
"FeatureID": 13,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "东亭北路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -53.97455748903548,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "东亭北路",
"ORIG_FID": 3
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.10463077558984, 31.471696319929265]
},
"properties": {
"OBJECTID": 4,
"FeatureID": 6,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "苏州中路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 26.672724606764447,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "苏州中路",
"ORIG_FID": 4
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.15627334314036, 31.47921552187887]
},
"properties": {
"OBJECTID": 5,
"FeatureID": 12,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "江南路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 21.82223479714308,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "江南路",
"ORIG_FID": 5
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.10636765064658, 31.430706628508176]
},
"properties": {
"OBJECTID": 6,
"FeatureID": 3,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "G204",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -33.476277963910725,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "G204",
"ORIG_FID": 6
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.0565975102669, 31.447551219113507]
},
"properties": {
"OBJECTID": 7,
"FeatureID": 4,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "苏州西路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 26.70120027383763,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "苏州西路",
"ORIG_FID": 7
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.10649499644694, 31.500329923587174]
},
"properties": {
"OBJECTID": 8,
"FeatureID": 25,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "广州东路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 27.979447434042477,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "广州东路",
"ORIG_FID": 8
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.12561979391841, 31.49958661339715]
},
"properties": {
"OBJECTID": 9,
"FeatureID": 22,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "北京东路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 27.480898157753295,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "北京东路",
"ORIG_FID": 9
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.11520654024969, 31.46305099500745]
},
"properties": {
"OBJECTID": 10,
"FeatureID": 10,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "郑和中路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 23.853308685437288,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "",
"ORIG_FID": 10
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.07999274736744, 31.44397910115464]
},
"properties": {
"OBJECTID": 11,
"FeatureID": 7,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "郑和西路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 29.01765876595468,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "郑和西路",
"ORIG_FID": 11
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.12534019099712, 31.449688040670594]
},
"properties": {
"OBJECTID": 12,
"FeatureID": 18,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "朝阳东路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 33.454091858264604,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "朝阳东路",
"ORIG_FID": 12
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.15127117362579, 31.495622427732883]
},
"properties": {
"OBJECTID": 13,
"FeatureID": 5,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "苏州东路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 27.108675622614353,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "苏州东路",
"ORIG_FID": 13
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.07688639549087, 31.48458803760792]
},
"properties": {
"OBJECTID": 14,
"FeatureID": 27,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "广州西路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 27.980049799669352,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "广州西路",
"ORIG_FID": 14
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.12863151128533, 31.460602458186945]
},
"properties": {
"OBJECTID": 15,
"FeatureID": 16,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "东亭南路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -42.99490783379614,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "东亭南路",
"ORIG_FID": 15
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.10564473996282, 31.435556718267966]
},
"properties": {
"OBJECTID": 16,
"FeatureID": 20,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "朝阳西路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 40.58402489553576,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "朝阳西路",
"ORIG_FID": 16
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.08320832730249, 31.477272006897635]
},
"properties": {
"OBJECTID": 17,
"FeatureID": 24,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "北京西路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 27.51761602541921,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "北京西路",
"ORIG_FID": 17
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [121.07195194762437, 31.54471009779286]
},
"properties": {
"OBJECTID": 18,
"FeatureID": 17,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "白云南路",
"FontName": "宋体",
"FontSize": 8,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": -77.8465237653276,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"name": "白云南路",
"ORIG_FID": 18
}
}
]
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,657 @@
{
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "EPSG:4490"
}
},
"features": [
{
"type": "Feature",
"id": 233,
"geometry": {
"type": "Point",
"coordinates": [121.12301184032429, 31.50576837705898]
},
"properties": {
"OBJECTID": 1,
"FeatureID": 16,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "花北社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 2
}
},
{
"type": "Feature",
"id": 217,
"geometry": {
"type": "Point",
"coordinates": [121.09380655163113, 31.48669967275174]
},
"properties": {
"OBJECTID": 2,
"FeatureID": 17,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "华盛园社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 3
}
},
{
"type": "Feature",
"id": 224,
"geometry": {
"type": "Point",
"coordinates": [121.11503911436375, 31.486413284545506]
},
"properties": {
"OBJECTID": 3,
"FeatureID": 10,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "香花桥社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 4
}
},
{
"type": "Feature",
"id": 238,
"geometry": {
"type": "Point",
"coordinates": [121.07991765037934, 31.482449983080301]
},
"properties": {
"OBJECTID": 4,
"FeatureID": 18,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "城北社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 5
}
},
{
"type": "Feature",
"id": 232,
"geometry": {
"type": "Point",
"coordinates": [121.13476392141786, 31.482792085186645]
},
"properties": {
"OBJECTID": 5,
"FeatureID": 14,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "荷塘社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 6
}
},
{
"type": "Feature",
"id": 226,
"geometry": {
"type": "Point",
"coordinates": [121.12655669133835, 31.468655922532832]
},
"properties": {
"OBJECTID": 6,
"FeatureID": 11,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "东郊社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 7
}
},
{
"type": "Feature",
"id": 225,
"geometry": {
"type": "Point",
"coordinates": [121.12421180083402, 31.455819651655645]
},
"properties": {
"OBJECTID": 7,
"FeatureID": 6,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "太东社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 8
}
},
{
"type": "Feature",
"id": 230,
"geometry": {
"type": "Point",
"coordinates": [121.1355365766517, 31.448748693397533]
},
"properties": {
"OBJECTID": 8,
"FeatureID": 3,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "滨河社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 9
}
},
{
"type": "Feature",
"id": 223,
"geometry": {
"type": "Point",
"coordinates": [121.12122451020309, 31.443312944536785]
},
"properties": {
"OBJECTID": 9,
"FeatureID": 4,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "朝阳社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 10
}
},
{
"type": "Feature",
"id": 228,
"geometry": {
"type": "Point",
"coordinates": [121.14588741587163, 31.465887662185925]
},
"properties": {
"OBJECTID": 10,
"FeatureID": 1,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "太胜社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 11
}
},
{
"type": "Feature",
"id": 219,
"geometry": {
"type": "Point",
"coordinates": [121.11430871107825, 31.470629786935149]
},
"properties": {
"OBJECTID": 11,
"FeatureID": 15,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "洋沙社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 12
}
},
{
"type": "Feature",
"id": 227,
"geometry": {
"type": "Point",
"coordinates": [121.13217112890952, 31.463650917455936]
},
"properties": {
"OBJECTID": 12,
"FeatureID": 7,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "裕珑社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 13
}
},
{
"type": "Feature",
"id": 222,
"geometry": {
"type": "Point",
"coordinates": [121.11658817320574, 31.450741292476721]
},
"properties": {
"OBJECTID": 13,
"FeatureID": 5,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "惠阳社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 14
}
},
{
"type": "Feature",
"id": 220,
"geometry": {
"type": "Point",
"coordinates": [121.11160797862533, 31.463799302895552]
},
"properties": {
"OBJECTID": 14,
"FeatureID": 12,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "丽景社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 15
}
},
{
"type": "Feature",
"id": 201,
"geometry": {
"type": "Point",
"coordinates": [121.14810847922297, 31.452274965717152]
},
"properties": {
"OBJECTID": 15,
"FeatureID": 19,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "娄江社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 16
}
},
{
"type": "Feature",
"id": 221,
"geometry": {
"type": "Point",
"coordinates": [121.11210121000295, 31.457487688106369]
},
"properties": {
"OBJECTID": 16,
"FeatureID": 8,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "太平社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 17
}
},
{
"type": "Feature",
"id": 229,
"geometry": {
"type": "Point",
"coordinates": [121.14140237322101, 31.455290622514293]
},
"properties": {
"OBJECTID": 17,
"FeatureID": 2,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "浦溪社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 18
}
},
{
"type": "Feature",
"id": 218,
"geometry": {
"type": "Point",
"coordinates": [121.10059837946173, 31.463740241718824]
},
"properties": {
"OBJECTID": 18,
"FeatureID": 9,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "柳园社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 19
}
},
{
"type": "Feature",
"id": 231,
"geometry": {
"type": "Point",
"coordinates": [121.14705629311345, 31.458722946506839]
},
"properties": {
"OBJECTID": 19,
"FeatureID": 20,
"ZOrder": null,
"AnnotationClassID": 0,
"SymbolID": 0,
"Status": 0,
"TextString": "景瑞社区",
"FontName": "隶书",
"FontSize": 14,
"Bold": 0,
"Italic": 0,
"Underline": 0,
"VerticalAlignment": 3,
"HorizontalAlignment": 1,
"XOffset": 0,
"YOffset": 0,
"Angle": 0,
"FontLeading": 0,
"WordSpacing": 100,
"CharacterWidth": 100,
"CharacterSpacing": 0,
"FlipAngle": 90,
"Override": 0,
"ORIG_FID": 20
}
}
]
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,250 @@
{
"type": "FeatureCollection",
"name": "20210929_居民小区点",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [
{
"type": "Feature",
"properties": {
"pyname": "rhbjy",
"telephone": "021-68878888",
"display_x": "121.097818",
"display_y": "31.480807",
"address": "华盛园社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.097818, 31.480807]
}
},
{
"type": "Feature",
"properties": {
"pyname": "dyycdm",
"telephone": "021-58406093",
"display_x": "121.11627",
"display_y": "31.488934",
"address": "香花桥社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.11627, 31.488934]
}
},
{
"type": "Feature",
"properties": {
"pyname": "rssc",
"telephone": null,
"display_x": "121.126621",
"display_y": "31.507107",
"address": "花北社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.126621, 31.507107]
}
},
{
"type": "Feature",
"properties": {
"pyname": "jdgy",
"telephone": null,
"display_x": "121.136973",
"display_y": "31.480659",
"address": "荷塘社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.136973, 31.480659]
}
},
{
"type": "Feature",
"properties": {
"pyname": "dyscxm",
"telephone": null,
"display_x": "121.130907",
"display_y": "31.4703",
"address": "东郊社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.130907, 31.4703]
}
},
{
"type": "Feature",
"properties": {
"pyname": "lssscnm",
"telephone": null,
"display_x": "121.127914",
"display_y": "31.455269",
"address": "太东社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.127914, 31.455269]
}
},
{
"type": "Feature",
"properties": {
"pyname": "shxqxm",
"telephone": null,
"display_x": "121.111482",
"display_y": "31.45595",
"address": "太平社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.111482, 31.45595]
}
},
{
"type": "Feature",
"properties": {
"pyname": "zyxqbm",
"telephone": null,
"display_x": "121.111514",
"display_y": "31.464404",
"address": "丽景社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.111514, 31.464404]
}
},
{
"type": "Feature",
"properties": {
"pyname": "dcxqxm",
"telephone": null,
"display_x": "121.113657",
"display_y": "31.470368",
"address": "洋沙社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.113657, 31.470368]
}
},
{
"type": "Feature",
"properties": {
"pyname": "myxqxm",
"telephone": null,
"display_x": "121.133955",
"display_y": "31.464055",
"address": "裕珑社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.133955, 31.464055]
}
},
{
"type": "Feature",
"properties": {
"pyname": "sjh",
"telephone": "021-51183333",
"display_x": "121.5097",
"display_y": "31.2342",
"address": "惠阳社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.117087, 31.451426]
}
},
{
"type": "Feature",
"properties": {
"pyname": "sjh",
"telephone": "021-51183333",
"display_x": "121.121378",
"display_y": "31.444614",
"address": "朝阳社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.121378, 31.444614]
}
},
{
"type": "Feature",
"properties": {
"pyname": "sjh",
"telephone": "021-51183333",
"display_x": "121.135462",
"display_y": "31.449627",
"address": "滨河社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.135462, 31.449627]
}
},
{
"type": "Feature",
"properties": {
"pyname": "sjh",
"telephone": "021-51183333",
"display_x": "121.140405",
"display_y": "31.455974",
"address": "浦溪社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.140405, 31.455974]
}
},
{
"type": "Feature",
"properties": {
"pyname": "sjh",
"telephone": "021-51183333",
"display_x": "121.147921",
"display_y": "31.452617",
"address": "娄东社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.147921, 31.452617]
}
},
{
"type": "Feature",
"properties": {
"pyname": "sjh",
"telephone": "021-51183333",
"display_x": "121.145138",
"display_y": "31.466331",
"address": "太胜社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.145138, 31.466331]
}
},
{
"type": "Feature",
"properties": {
"pyname": "sjh",
"telephone": "021-51183333",
"display_x": "121.147255",
"display_y": "31.458281",
"address": "景瑞社区"
},
"geometry": {
"type": "Point",
"coordinates": [121.147255, 31.458281]
}
}
]
}

@ -0,0 +1,63 @@
{
"displayFieldName": "",
"fieldAliases": {
"FID": "FID",
"OBJECTID": "OBJECTID",
"Shape_Leng": "Shape_Leng",
"Shape_Area": "Shape_Area",
"名称": "名称"
},
"geometryType": "esriGeometryPolygon",
"spatialReference": { "wkid": 4490, "latestWkid": 4490 },
"fields": [
{ "name": "FID", "type": "esriFieldTypeOID", "alias": "FID" },
{ "name": "OBJECTID", "type": "esriFieldTypeInteger", "alias": "OBJECTID" },
{
"name": "Shape_Leng",
"type": "esriFieldTypeDouble",
"alias": "Shape_Leng"
},
{
"name": "Shape_Area",
"type": "esriFieldTypeDouble",
"alias": "Shape_Area"
},
{
"name": "名称",
"type": "esriFieldTypeString",
"alias": "名称",
"length": 50
}
],
"features": [
{
"attributes": {
"FID": 0,
"OBJECTID": 0,
"Shape_Leng": 0,
"Shape_Area": 0,
"名称": "星雨华府"
},
"geometry": {
"rings": [
[
[121.12279891402805, 31.451721436414346],
[121.12331740390771, 31.452040003075219],
[121.12408569179644, 31.452512861528238],
[121.12470258830108, 31.452893988241954],
[121.12531929737979, 31.452327845565964],
[121.12626502014109, 31.451461741968533],
[121.12547674999021, 31.450947315995919],
[121.1260359762196, 31.450347077116263],
[121.12500371372785, 31.449677312470119],
[121.12494091096249, 31.449662354657587],
[121.12475474951661, 31.449689043304577],
[121.12441000674728, 31.450051372156416],
[121.12390550630934, 31.450573576700819],
[121.12279891402805, 31.451721436414346]
]
]
}
}
]
}

@ -0,0 +1,981 @@
{
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "EPSG:4490"
}
},
"features": [
{
"type": "Feature",
"id": 217,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.09930481300012, 31.508867991000045, 0, null],
[121.09929085400006, 31.509057295000048, 0, null],
[121.09618665500011, 31.507777702000055, 0, null],
[121.09571062100008, 31.508252954000056, 0, null],
[121.09534704300006, 31.508074442000066, 0, null],
[121.09504611400007, 31.508392184000058, 0, null],
[121.0936644730001, 31.507796674000076, 0, null],
[121.09364604900009, 31.50778873400003, 0, null],
[121.0936501970001, 31.507782397000028, 0, null],
[121.09449146800011, 31.506497115000059, 0, null],
[121.09567018300004, 31.504455306000068, 0, null],
[121.09187838700007, 31.503899027000045, 0, null],
[121.08993317200009, 31.503613653000059, 0, null],
[121.08978551200005, 31.503539322000051, 0, null],
[121.08954307800002, 31.503449418000059, 0, null],
[121.0894275500001, 31.503440743000056, 0, null],
[121.0885607890001, 31.505707197000049, 0, null],
[121.08592762000001, 31.504596779000053, 0, null],
[121.08499645800009, 31.50422442100006, 0, null],
[121.08361266000009, 31.503830483000058, 0, null],
[121.08364527800006, 31.503662650000024, 0, null],
[121.08253407400002, 31.503359619000037, 0, null],
[121.08168528100009, 31.50298716900005, 0, null],
[121.08096810000006, 31.502852817000075, 0, null],
[121.07981703200005, 31.502637178000043, 0, null],
[121.07951272700006, 31.502536441000075, 0, null],
[121.0773856510001, 31.502111887000069, 0, null],
[121.0773875970001, 31.502053074000059, 0, null],
[121.07686642500005, 31.501879123000037, 0, null],
[121.0761777890001, 31.501716668000029, 0, null],
[121.07480985100005, 31.501503496000055, 0, null],
[121.07390942400002, 31.501283448000038, 0, null],
[121.07341969100003, 31.501103411000031, 0, null],
[121.07271052900001, 31.500758957000073, 0, null],
[121.07381572600002, 31.499462768000058, 0, null],
[121.07230238800003, 31.498577608000062, 0, null],
[121.07127446100003, 31.49792087700007, 0, null],
[121.06988961500008, 31.49710710100004, 0, null],
[121.06891171400002, 31.498643841000046, 0, null],
[121.06835405100003, 31.498241688000064, 0, null],
[121.06784094700004, 31.498094371000036, 0, null],
[121.06715561900012, 31.49769253200003, 0, null],
[121.06658274800009, 31.497431385000027, 0, null],
[121.06583953300003, 31.497053008000023, 0, null],
[121.06514627700005, 31.496620568000026, 0, null],
[121.0648941500001, 31.496925866000026, 0, null],
[121.06397702000004, 31.49650179300005, 0, null],
[121.06368674800001, 31.496858219000046, 0, null],
[121.05973027700009, 31.494902779000029, 0, null],
[121.05970457700005, 31.494890077000036, 0, null],
[121.05973027800007, 31.494859948000055, 0, null],
[121.06020392800008, 31.494304675000024, 0, null],
[121.0608711110001, 31.493972429000053, 0, null],
[121.06169179500012, 31.49245697300006, 0, null],
[121.06254798800001, 31.491288513000029, 0, null],
[121.06327506800005, 31.490448676000028, 0, null],
[121.0642240520001, 31.489709665000078, 0, null],
[121.06452247300001, 31.489231176000033, 0, null],
[121.06451662000006, 31.488433332000056, 0, null],
[121.06467399900009, 31.487768932000051, 0, null],
[121.06681087200002, 31.487119752000069, 0, null],
[121.06789394800001, 31.486068209000052, 0, null],
[121.06854220600007, 31.484811576000027, 0, null],
[121.06951844000002, 31.48399985900005, 0, null],
[121.07029604700006, 31.482809117000045, 0, null],
[121.07139577300006, 31.481742918000066, 0, null],
[121.08414031700011, 31.488414658000067, 0, null],
[121.0901364230001, 31.48071903500005, 0, null],
[121.09544189400003, 31.474114234000069, 0, null],
[121.09265208400006, 31.472534807000045, 0, null],
[121.0942084510001, 31.470626185000071, 0, null],
[121.0947719620001, 31.469994077000024, 0, null],
[121.09234062700011, 31.468568739000034, 0, null],
[121.09112259500012, 31.46785464900006, 0, null],
[121.09057652500007, 31.467534501000046, 0, null],
[121.08609645100012, 31.46492624900003, 0, null],
[121.08676257800005, 31.464647860000071, 0, null],
[121.08724066700006, 31.464195300000029, 0, null],
[121.08748503400011, 31.463296014000036, 0, null],
[121.09053101300003, 31.464614075000043, 0, null],
[121.09189534300003, 31.462816220000036, 0, null],
[121.09395019600004, 31.463538142000061, 0, null],
[121.09832242200002, 31.465738194000039, 0, null],
[121.09666243800007, 31.467717189000041, 0, null],
[121.0992646950001, 31.469025065000039, 0, null],
[121.10109540000008, 31.469945204000055, 0, null],
[121.10483076300011, 31.471812496000041, 0, null],
[121.10656534900011, 31.469438550000064, 0, null],
[121.10985701900006, 31.471235783000054, 0, null],
[121.11196529100005, 31.472386888000074, 0, null],
[121.11040582600003, 31.474618742000075, 0, null],
[121.09620227900007, 31.494940734000068, 0, null],
[121.09423774700008, 31.498958751000032, 0, null],
[121.10671474900005, 31.505947525000067, 0, null],
[121.10545839300005, 31.507489416000055, 0, null],
[121.09836759900008, 31.505123042000037, 0, null],
[121.09878400500008, 31.505985597000063, 0, null],
[121.09925989700002, 31.507115841000029, 0, null],
[121.09930481300012, 31.508867991000045, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.21790409503300001,
"Shape_Area": 0.00090903101001699996,
"CMC": "华盛园社区",
"DZWHMC": "娄东街道",
"color": "#32fc80"
}
},
{
"type": "Feature",
"id": 218,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.10434938900005, 31.462511650000067, 0, null],
[121.10297838600002, 31.464267885000027, 0, null],
[121.0992646950001, 31.469025065000039, 0, null],
[121.09666243800007, 31.467717189000041, 0, null],
[121.09832242200002, 31.465738194000039, 0, null],
[121.09854816100005, 31.465469075000044, 0, null],
[121.09978292300002, 31.463891680000074, 0, null],
[121.10059608300003, 31.46285285700003, 0, null],
[121.1022716120001, 31.461018832000036, 0, null],
[121.10235688400007, 31.460925494000037, 0, null],
[121.10375895000004, 31.458258077000039, 0, null],
[121.10390922800002, 31.458318985000062, 0, null],
[121.10404103200005, 31.458235161000061, 0, null],
[121.10417230000007, 31.458151679000025, 0, null],
[121.10655471200005, 31.459008586000039, 0, null],
[121.10685436200004, 31.459232464000024, 0, null],
[121.10434938900005, 31.462511650000067, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.030562567693499999,
"Shape_Area": 3.3958030437500003e-5,
"CMC": "柳园社区",
"DZWHMC": "娄东街道",
"color": "#a0f531"
}
},
{
"type": "Feature",
"id": 219,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.1202539410001, 31.471004659000073, 0, null],
[121.12731090500006, 31.473959878000073, 0, null],
[121.1259038820001, 31.476319869000065, 0, null],
[121.12425047200009, 31.479092962000038, 0, null],
[121.11196529100005, 31.472386888000074, 0, null],
[121.10985701900006, 31.471235783000054, 0, null],
[121.10656534900011, 31.469438550000064, 0, null],
[121.10483076300011, 31.471812496000041, 0, null],
[121.10109540000008, 31.469945204000055, 0, null],
[121.0992646950001, 31.469025065000039, 0, null],
[121.10297838600002, 31.464267885000027, 0, null],
[121.10434938900005, 31.462511650000067, 0, null],
[121.10929215600004, 31.465660052000032, 0, null],
[121.11460913600001, 31.468640804000074, 0, null],
[121.1202539410001, 31.471004659000073, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.069279523130800005,
"Shape_Area": 0.00014822706008500001,
"CMC": "洋沙社区",
"DZWHMC": "娄东街道",
"color": "#fc32b5"
}
},
{
"type": "Feature",
"id": 220,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.1086033900001, 31.460059204000061, 0, null],
[121.11258021700007, 31.461938990000078, 0, null],
[121.11256541100011, 31.461955746000058, 0, null],
[121.1144306220001, 31.462809581000045, 0, null],
[121.11756713600005, 31.464285165000035, 0, null],
[121.11460913600001, 31.468640804000074, 0, null],
[121.10929215600004, 31.465660052000032, 0, null],
[121.10434938900005, 31.462511650000067, 0, null],
[121.10685436200004, 31.459232464000024, 0, null],
[121.1086033900001, 31.460059204000061, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.033220715964499999,
"Shape_Area": 5.6251608877700003e-5,
"CMC": "丽景社区",
"DZWHMC": "娄东街道",
"color": "#5db324"
}
},
{
"type": "Feature",
"id": 221,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.11651680800003, 31.457599878000053, 0, null],
[121.11443798100004, 31.459878568000079, 0, null],
[121.11258021700007, 31.461938990000078, 0, null],
[121.1086033900001, 31.460059204000061, 0, null],
[121.10685436200004, 31.459232464000024, 0, null],
[121.10655471200005, 31.459008586000039, 0, null],
[121.10689909400003, 31.458507137000026, 0, null],
[121.10695596900007, 31.458406091000029, 0, null],
[121.10831015400004, 31.456000200000062, 0, null],
[121.10961705300008, 31.453766408000035, 0, null],
[121.10968905100003, 31.453643344000056, 0, null],
[121.11043150300009, 31.452625911000041, 0, null],
[121.11066093200009, 31.452311507000047, 0, null],
[121.11170797200009, 31.453238290000058, 0, null],
[121.11253442100008, 31.453690433000077, 0, null],
[121.11282513900005, 31.453949519000048, 0, null],
[121.11426478100009, 31.45548410300006, 0, null],
[121.1150174280001, 31.455958730000077, 0, null],
[121.11587637100001, 31.45669143300006, 0, null],
[121.11680435800008, 31.457284672000071, 0, null],
[121.11651680800003, 31.457599878000053, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.028811301899899999,
"Shape_Area": 5.1231240623299997e-5,
"CMC": "太平社区",
"DZWHMC": "娄东街道",
"color": "#70a7ff"
}
},
{
"type": "Feature",
"id": 222,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.11612518200002, 31.445270729000072, 0, null],
[121.11660975700011, 31.445648278000078, 0, null],
[121.11695508000003, 31.445939549000059, 0, null],
[121.11773231000006, 31.446703471000035, 0, null],
[121.11802638300003, 31.446936332000064, 0, null],
[121.11842632500009, 31.447177810000028, 0, null],
[121.11897351300001, 31.447631156000057, 0, null],
[121.11946210400004, 31.448150751000071, 0, null],
[121.12012622000009, 31.448786280000036, 0, null],
[121.12145512900008, 31.44987558400004, 0, null],
[121.12161675300001, 31.450047558000051, 0, null],
[121.12171115700005, 31.45026187600007, 0, null],
[121.12172987400004, 31.450431122000055, 0, null],
[121.12160803000006, 31.45071692700003, 0, null],
[121.12062664600012, 31.451487239000073, 0, null],
[121.11982406300001, 31.452028738000024, 0, null],
[121.11941261700008, 31.452382293000028, 0, null],
[121.11883580900007, 31.452978018000067, 0, null],
[121.11842413000011, 31.453312482000058, 0, null],
[121.11748247000003, 31.454020616000037, 0, null],
[121.11701747000006, 31.454241011000079, 0, null],
[121.1163266210001, 31.454819691000068, 0, null],
[121.1150174280001, 31.455958730000077, 0, null],
[121.11426478100009, 31.45548410300006, 0, null],
[121.11282513900005, 31.453949519000048, 0, null],
[121.11253442100008, 31.453690433000077, 0, null],
[121.11170797200009, 31.453238290000058, 0, null],
[121.11066093200009, 31.452311507000047, 0, null],
[121.11320330500007, 31.448827515000062, 0, null],
[121.11328679500002, 31.448713100000077, 0, null],
[121.11492692100001, 31.446629030000054, 0, null],
[121.11601309500008, 31.445248852000077, 0, null],
[121.11612518200002, 31.445270729000072, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.031158776215399999,
"Shape_Area": 6.0227996315300001e-5,
"CMC": "惠阳社区",
"DZWHMC": "娄东街道",
"color": "#10b7f1"
}
},
{
"type": "Feature",
"id": 223,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.12371346900011, 31.44916336600005, 0, null],
[121.12332454400007, 31.449535824000066, 0, null],
[121.12292713200009, 31.449819274000049, 0, null],
[121.12266793600008, 31.450127030000033, 0, null],
[121.12220789900005, 31.450838929000042, 0, null],
[121.12191284300002, 31.450992632000066, 0, null],
[121.12162327100009, 31.45082814400007, 0, null],
[121.12160803000006, 31.45071692700003, 0, null],
[121.12172987400004, 31.450431122000055, 0, null],
[121.12171115700005, 31.45026187600007, 0, null],
[121.12161675300001, 31.450047558000051, 0, null],
[121.12145512900008, 31.44987558400004, 0, null],
[121.12012622000009, 31.448786280000036, 0, null],
[121.11946210400004, 31.448150751000071, 0, null],
[121.11897351300001, 31.447631156000057, 0, null],
[121.11842632500009, 31.447177810000028, 0, null],
[121.11802638300003, 31.446936332000064, 0, null],
[121.11773231000006, 31.446703471000035, 0, null],
[121.11695508000003, 31.445939549000059, 0, null],
[121.11660975700011, 31.445648278000078, 0, null],
[121.11612518200002, 31.445270729000072, 0, null],
[121.11601309500008, 31.445248852000077, 0, null],
[121.11605111300003, 31.445200541000077, 0, null],
[121.11478533600007, 31.444044949000045, 0, null],
[121.11518248300001, 31.443598080000072, 0, null],
[121.11383333000003, 31.44275575100005, 0, null],
[121.11360011900001, 31.442962905000059, 0, null],
[121.11260995900011, 31.44205893700007, 0, null],
[121.11376637700005, 31.440630666000061, 0, null],
[121.11225917700006, 31.439726354000072, 0, null],
[121.11146432700002, 31.439249436000068, 0, null],
[121.11273393100009, 31.437938044000077, 0, null],
[121.11305275000007, 31.437451190000047, 0, null],
[121.11305279400005, 31.437451124000063, 0, null],
[121.12039830300012, 31.43950835000004, 0, null],
[121.13027099400006, 31.442156460000035, 0, null],
[121.13002235300007, 31.442618439000057, 0, null],
[121.13003776800008, 31.442622611000047, 0, null],
[121.12908868300008, 31.444706862000032, 0, null],
[121.12807195200003, 31.445759094000039, 0, null],
[121.12806509300003, 31.445766193000054, 0, null],
[121.12707703100011, 31.446788724000044, 0, null],
[121.12476334700011, 31.44918301000007, 0, null],
[121.12408328100003, 31.448748776000059, 0, null],
[121.12371346900011, 31.44916336600005, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.051993084705100001,
"Shape_Area": 0.00012264707331099999,
"CMC": "朝阳社区",
"DZWHMC": "娄东街道",
"color": "#d5b7f1"
}
},
{
"type": "Feature",
"id": 224,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.10963388800008, 31.507679758000052, 0, null],
[121.10671474900005, 31.505947525000067, 0, null],
[121.09423774700008, 31.498958751000032, 0, null],
[121.09620227900007, 31.494940734000068, 0, null],
[121.11040582600003, 31.474618742000075, 0, null],
[121.12286732300004, 31.480810502000054, 0, null],
[121.12787167600004, 31.483385657000042, 0, null],
[121.13408157300012, 31.486860066000077, 0, null],
[121.13532295400012, 31.487539306000031, 0, null],
[121.13818882700002, 31.489085174000024, 0, null],
[121.13492294000002, 31.492458958000043, 0, null],
[121.12988420700003, 31.498173889000043, 0, null],
[121.12809054200011, 31.496705808000058, 0, null],
[121.11893584500001, 31.506970059000025, 0, null],
[121.11235715900011, 31.503673304000074, 0, null],
[121.10963388800008, 31.507679758000052, 0, null]
],
[
[121.11747277800009, 31.497175293000055, 0, null],
[121.1172645900001, 31.497433038000054, 0, null],
[121.11658452200004, 31.498274983000044, 0, null],
[121.11602697600006, 31.498965217000034, 0, null],
[121.11782281300009, 31.500204113000052, 0, null],
[121.11916896700006, 31.50122179400006, 0, null],
[121.11873790300001, 31.501852770000028, 0, null],
[121.12121073600008, 31.503124587000059, 0, null],
[121.12299478300008, 31.501250080000034, 0, null],
[121.12507055200001, 31.499068936000072, 0, null],
[121.12260415500009, 31.497760674000062, 0, null],
[121.11868094600004, 31.495679490000043, 0, null],
[121.11747277800009, 31.497175293000055, 0, null]
],
[
[121.12732770300011, 31.496148108000057, 0, null],
[121.12973188100011, 31.493069185000024, 0, null],
[121.12730611300003, 31.491708293000045, 0, null],
[121.12510554900007, 31.494861420000063, 0, null],
[121.12732770300011, 31.496148108000057, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.156450951437,
"Shape_Area": 0.00074659317650599996,
"CMC": "香花桥社区",
"DZWHMC": "娄东街道",
"color": "#b447f1"
}
},
{
"type": "Feature",
"id": 225,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.12632445300005, 31.463341342000035, 0, null],
[121.12558730100011, 31.463138829000059, 0, null],
[121.12513460700006, 31.463071225000078, 0, null],
[121.12447815000007, 31.463267877000078, 0, null],
[121.12426475700011, 31.463269751000041, 0, null],
[121.12360288200011, 31.463013094000075, 0, null],
[121.12270982300004, 31.462822088000053, 0, null],
[121.12215137700002, 31.462393515000031, 0, null],
[121.12150954200001, 31.461793076000049, 0, null],
[121.1211729800001, 31.46158127800004, 0, null],
[121.12081489100001, 31.461431704000063, 0, null],
[121.12066066900002, 31.461103776000073, 0, null],
[121.12041652800008, 31.460705053000027, 0, null],
[121.12026948900007, 31.460590615000058, 0, null],
[121.12010623500009, 31.460440353000024, 0, null],
[121.1200519570001, 31.460156027000039, 0, null],
[121.11914140400006, 31.459427687000073, 0, null],
[121.11852278000003, 31.45928527500007, 0, null],
[121.1181961310001, 31.459133709000071, 0, null],
[121.11797105900007, 31.458932858000026, 0, null],
[121.11781510100002, 31.458709977000069, 0, null],
[121.11765927700003, 31.458462342000075, 0, null],
[121.11708210200004, 31.458005913000079, 0, null],
[121.1167607860001, 31.457757011000069, 0, null],
[121.11651680800003, 31.457599878000053, 0, null],
[121.11680435800008, 31.457284672000071, 0, null],
[121.11587637100001, 31.45669143300006, 0, null],
[121.1150174280001, 31.455958730000077, 0, null],
[121.1163266210001, 31.454819691000068, 0, null],
[121.11701747000006, 31.454241011000079, 0, null],
[121.11748247000003, 31.454020616000037, 0, null],
[121.11842413000011, 31.453312482000058, 0, null],
[121.11883580900007, 31.452978018000067, 0, null],
[121.11941261700008, 31.452382293000028, 0, null],
[121.11982406300001, 31.452028738000024, 0, null],
[121.12062664600012, 31.451487239000073, 0, null],
[121.12160803000006, 31.45071692700003, 0, null],
[121.12162327100009, 31.45082814400007, 0, null],
[121.12191284300002, 31.450992632000066, 0, null],
[121.12220789900005, 31.450838929000042, 0, null],
[121.12266793600008, 31.450127030000033, 0, null],
[121.12292713200009, 31.449819274000049, 0, null],
[121.12332454400007, 31.449535824000066, 0, null],
[121.12371346900011, 31.44916336600005, 0, null],
[121.12408328100003, 31.448748776000059, 0, null],
[121.12476334700011, 31.44918301000007, 0, null],
[121.12876711800004, 31.451931534000039, 0, null],
[121.13166051500002, 31.45385929400004, 0, null],
[121.13393929200004, 31.455377454000029, 0, null],
[121.13862770000003, 31.457857306000051, 0, null],
[121.13630709500001, 31.46088457500008, 0, null],
[121.13566330100002, 31.461724415000049, 0, null],
[121.13036315000011, 31.458556540000075, 0, null],
[121.12632445300005, 31.463341342000035, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.061305069993900001,
"Shape_Area": 0.00017363804882600001,
"CMC": "太东社区",
"DZWHMC": "娄东街道",
"color": "#33ffcc"
}
},
{
"type": "Feature",
"id": 226,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.13593237500004, 31.467569656000023, 0, null],
[121.13537758400003, 31.468774150000058, 0, null],
[121.13785896000002, 31.469195615000046, 0, null],
[121.1397347840001, 31.469509717000051, 0, null],
[121.14183776300001, 31.470292695000069, 0, null],
[121.1375103790001, 31.47617705600004, 0, null],
[121.1365043720001, 31.477850405000027, 0, null],
[121.13642084600008, 31.477996544000064, 0, null],
[121.13309900500008, 31.476408500000048, 0, null],
[121.12731090500006, 31.473959878000073, 0, null],
[121.1202539410001, 31.471004659000073, 0, null],
[121.11460913600001, 31.468640804000074, 0, null],
[121.11756713600005, 31.464285165000035, 0, null],
[121.1144306220001, 31.462809581000045, 0, null],
[121.11256541100011, 31.461955746000058, 0, null],
[121.11258021700007, 31.461938990000078, 0, null],
[121.11443798100004, 31.459878568000079, 0, null],
[121.11651680800003, 31.457599878000053, 0, null],
[121.1167607860001, 31.457757011000069, 0, null],
[121.11708210200004, 31.458005913000079, 0, null],
[121.11765927700003, 31.458462342000075, 0, null],
[121.11781510100002, 31.458709977000069, 0, null],
[121.11797105900007, 31.458932858000026, 0, null],
[121.1181961310001, 31.459133709000071, 0, null],
[121.11852278000003, 31.45928527500007, 0, null],
[121.11914140400006, 31.459427687000073, 0, null],
[121.1200519570001, 31.460156027000039, 0, null],
[121.12010623500009, 31.460440353000024, 0, null],
[121.12026948900007, 31.460590615000058, 0, null],
[121.12041652800008, 31.460705053000027, 0, null],
[121.12066066900002, 31.461103776000073, 0, null],
[121.12081489100001, 31.461431704000063, 0, null],
[121.1211729800001, 31.46158127800004, 0, null],
[121.12150954200001, 31.461793076000049, 0, null],
[121.12215137700002, 31.462393515000031, 0, null],
[121.12270982300004, 31.462822088000053, 0, null],
[121.12360288200011, 31.463013094000075, 0, null],
[121.12426475700011, 31.463269751000041, 0, null],
[121.12447815000007, 31.463267877000078, 0, null],
[121.12513460700006, 31.463071225000078, 0, null],
[121.12558730100011, 31.463138829000059, 0, null],
[121.12632445300005, 31.463341342000035, 0, null],
[121.12634025000011, 31.463345681000078, 0, null],
[121.12512300900005, 31.464877354000066, 0, null],
[121.13164675600001, 31.466534275000072, 0, null],
[121.13220152400004, 31.466754456000047, 0, null],
[121.13283827400005, 31.465999600000032, 0, null],
[121.13593237500004, 31.467569656000023, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.083672665783800004,
"Shape_Area": 0.00023262840564100001,
"CMC": "东郊社区",
"DZWHMC": "娄东街道",
"color": "#FA8072"
}
},
{
"type": "Feature",
"id": 227,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.13566330100002, 31.461724415000049, 0, null],
[121.13598867300004, 31.461918874000048, 0, null],
[121.1406439970001, 31.464700951000054, 0, null],
[121.13785896000002, 31.469195615000046, 0, null],
[121.13537758400003, 31.468774150000058, 0, null],
[121.13593237500004, 31.467569656000023, 0, null],
[121.13283827400005, 31.465999600000032, 0, null],
[121.13220152400004, 31.466754456000047, 0, null],
[121.13164675600001, 31.466534275000072, 0, null],
[121.12512300900005, 31.464877354000066, 0, null],
[121.12634025000011, 31.463345681000078, 0, null],
[121.12632445300005, 31.463341342000035, 0, null],
[121.13036315000011, 31.458556540000075, 0, null],
[121.13566330100002, 31.461724415000049, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.0411268584827,
"Shape_Area": 7.7544312680099994e-5,
"CMC": "裕珑社区",
"DZWHMC": "娄东街道",
"color": "#A0522D"
}
},
{
"type": "Feature",
"id": 228,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.1482608980001, 31.470118068000033, 0, null],
[121.14560447300005, 31.473513814000057, 0, null],
[121.14183776300001, 31.470292695000069, 0, null],
[121.1397347840001, 31.469509717000051, 0, null],
[121.13785896000002, 31.469195615000046, 0, null],
[121.1406439970001, 31.464700951000054, 0, null],
[121.13598867300004, 31.461918874000048, 0, null],
[121.13566330100002, 31.461724415000049, 0, null],
[121.13630709500001, 31.46088457500008, 0, null],
[121.13862770000003, 31.457857306000051, 0, null],
[121.13393929200004, 31.455377454000029, 0, null],
[121.13166051500002, 31.45385929400004, 0, null],
[121.13166264800009, 31.453856745000053, 0, null],
[121.13392739500011, 31.45536555700005, 0, null],
[121.13538614900006, 31.453986102000044, 0, null],
[121.13856572400005, 31.454922708000026, 0, null],
[121.14033234600004, 31.455588137000063, 0, null],
[121.13875592200009, 31.457806887000061, 0, null],
[121.14347648700004, 31.46053106200003, 0, null],
[121.14742302600007, 31.462570464000066, 0, null],
[121.1490138050001, 31.459480050000025, 0, null],
[121.15040434100001, 31.456778468000039, 0, null],
[121.15053158300009, 31.45658368200003, 0, null],
[121.15157090200012, 31.454992614000048, 0, null],
[121.15237992200002, 31.453754060000051, 0, null],
[121.15394217100004, 31.451362261000043, 0, null],
[121.16092057200001, 31.453930980000052, 0, null],
[121.15550944900008, 31.46085064500005, 0, null],
[121.15296331100001, 31.464106186000038, 0, null],
[121.1482608980001, 31.470118068000033, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.10093646303500001,
"Shape_Area": 0.000221232058146,
"CMC": "太胜社区",
"DZWHMC": "娄东街道",
"color": "#87CEEB"
}
},
{
"type": "Feature",
"id": 229,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.14697517400009, 31.455067955000061, 0, null],
[121.14531242700002, 31.45766438000004, 0, null],
[121.14495185100009, 31.458227407000038, 0, null],
[121.14347648700004, 31.46053106200003, 0, null],
[121.13875592200009, 31.457806887000061, 0, null],
[121.14033234600004, 31.455588137000063, 0, null],
[121.13856572400005, 31.454922708000026, 0, null],
[121.13538614900006, 31.453986102000044, 0, null],
[121.13821989500002, 31.451237564000053, 0, null],
[121.14246134100006, 31.452889928000047, 0, null],
[121.14307333700003, 31.453121585000076, 0, null],
[121.14367343700007, 31.453341342000044, 0, null],
[121.14697517400009, 31.455067955000061, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.033380877987199999,
"Shape_Area": 4.9644396315800003e-5,
"CMC": "浦溪社区",
"DZWHMC": "娄东街道",
"color": "#00B2EE"
}
},
{
"type": "Feature",
"id": 230,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.13538614900006, 31.453986102000044, 0, null],
[121.13392739500011, 31.45536555700005, 0, null],
[121.13166264800009, 31.453856745000053, 0, null],
[121.13166051500002, 31.45385929400004, 0, null],
[121.12876711800004, 31.451931534000039, 0, null],
[121.12476334700011, 31.44918301000007, 0, null],
[121.12707703100011, 31.446788724000044, 0, null],
[121.12806509300003, 31.445766193000054, 0, null],
[121.12807195200003, 31.445759094000039, 0, null],
[121.12908868300008, 31.444706862000032, 0, null],
[121.13003776800008, 31.442622611000047, 0, null],
[121.13002235300007, 31.442618439000057, 0, null],
[121.13804735200006, 31.444640034000031, 0, null],
[121.1388154870001, 31.444933001000038, 0, null],
[121.14625117500009, 31.447768978000056, 0, null],
[121.14460465500008, 31.450021865000053, 0, null],
[121.14246134100006, 31.452889928000047, 0, null],
[121.13821989500002, 31.451237564000053, 0, null],
[121.13538614900006, 31.453986102000044, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.053522688117500002,
"Shape_Area": 0.00014671314128700001,
"CMC": "滨河社区",
"DZWHMC": "娄东街道",
"color": "#556B2F"
}
},
{
"type": "Feature",
"id": 231,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.15040434100001, 31.456778468000039, 0, null],
[121.1490138050001, 31.459480050000025, 0, null],
[121.14742302600007, 31.462570464000066, 0, null],
[121.14347648700004, 31.46053106200003, 0, null],
[121.14495185100009, 31.458227407000038, 0, null],
[121.14531242700002, 31.45766438000004, 0, null],
[121.14697517400009, 31.455067955000061, 0, null],
[121.15040434100001, 31.456778468000039, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.021276090040200001,
"Shape_Area": 2.6828420511900001e-5,
"CMC": "景瑞社区",
"DZWHMC": "娄东街道",
"color": "#7D26CD"
}
},
{
"type": "Feature",
"id": 201,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.14996546000009, 31.449507692000054, 0, null],
[121.15394217100004, 31.451362261000043, 0, null],
[121.15237992200002, 31.453754060000051, 0, null],
[121.15157090200012, 31.454992614000048, 0, null],
[121.15053158300009, 31.45658368200003, 0, null],
[121.15040434100001, 31.456778468000039, 0, null],
[121.14697517400009, 31.455067955000061, 0, null],
[121.14367343700007, 31.453341342000044, 0, null],
[121.14307333700003, 31.453121585000076, 0, null],
[121.14246134100006, 31.452889928000047, 0, null],
[121.14460465500008, 31.450021865000053, 0, null],
[121.14625117500009, 31.447768978000056, 0, null],
[121.14996546000009, 31.449507692000054, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.030180652771500002,
"Shape_Area": 5.4399586747699999e-5,
"CMC": "娄江社区",
"DZWHMC": "娄东街道",
"color": "#828282"
}
},
{
"type": "Feature",
"id": 232,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.14587158000006, 31.484509273000072, 0, null],
[121.14682849500002, 31.484855587000027, 0, null],
[121.14630485900011, 31.486073235000049, 0, null],
[121.1459444730001, 31.486911254000063, 0, null],
[121.14293807600006, 31.491494283000065, 0, null],
[121.13818882700002, 31.489085174000024, 0, null],
[121.13532295400012, 31.487539306000031, 0, null],
[121.13408157300012, 31.486860066000077, 0, null],
[121.12787167600004, 31.483385657000042, 0, null],
[121.12286732300004, 31.480810502000054, 0, null],
[121.11040582600003, 31.474618742000075, 0, null],
[121.11196529100005, 31.472386888000074, 0, null],
[121.12425047200009, 31.479092962000038, 0, null],
[121.1259038820001, 31.476319869000065, 0, null],
[121.12731090500006, 31.473959878000073, 0, null],
[121.13309900500008, 31.476408500000048, 0, null],
[121.13642084600008, 31.477996544000064, 0, null],
[121.1365043720001, 31.477850405000027, 0, null],
[121.1375103790001, 31.47617705600004, 0, null],
[121.14183776300001, 31.470292695000069, 0, null],
[121.14560447300005, 31.473513814000057, 0, null],
[121.14999912700011, 31.476759470000047, 0, null],
[121.14945933000001, 31.478385977000073, 0, null],
[121.1486690050001, 31.480749067000033, 0, null],
[121.14859601500007, 31.480967304000046, 0, null],
[121.14847383900008, 31.481332608000059, 0, null],
[121.14806092800006, 31.481148718000043, 0, null],
[121.14784171800011, 31.481021017000046, 0, null],
[121.14776456000004, 31.481190304000052, 0, null],
[121.14747367200005, 31.481010897000033, 0, null],
[121.14587158000006, 31.484509273000072, 0, null]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.107800304083,
"Shape_Area": 0.00032256619148799998,
"CMC": "荷塘社区",
"DZWHMC": "娄东街道",
"color": "#9370DB"
}
},
{
"type": "Feature",
"id": 233,
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[121.11878713500005, 31.525347381000074, 0, null],
[121.12019994700006, 31.527352820000033, 0, null],
[121.12073047700005, 31.527912779000076, 0, null],
[121.12071210500005, 31.528160282000044, 0, null],
[121.12175239200008, 31.529160905000026, 0, null],
[121.12163653300001, 31.529317589000073, 0, null],
[121.12071824600002, 31.530583272000058, 0, null],
[121.11933859200008, 31.53232822700005, 0, null],
[121.11910354400004, 31.53264019900007, 0, null],
[121.1187114600001, 31.533289703000037, 0, null],
[121.11822483100002, 31.53390538900004, 0, null],
[121.11773087100005, 31.534865212000057, 0, null],
[121.10955931500007, 31.530561935000037, 0, null],
[121.11021920000007, 31.529875908000065, 0, null],
[121.10965314200007, 31.529313064000064, 0, null],
[121.10857671400004, 31.528728605000026, 0, null],
[121.10713479300011, 31.527417901000035, 0, null],
[121.10683179600005, 31.527206531000047, 0, null],
[121.10596816800012, 31.52684111700006, 0, null],
[121.10560213100007, 31.526657388000046, 0, null],
[121.10506337700008, 31.52622341700004, 0, null],
[121.10471930100005, 31.525980514000025, 0, null],
[121.10708243900001, 31.523601074000055, 0, null],
[121.10824717800006, 31.524529132000055, 0, null],
[121.10862282900007, 31.524311497000042, 0, null],
[121.11020460400005, 31.522923318000039, 0, null],
[121.1100493990001, 31.522587874000067, 0, null],
[121.11066737900001, 31.521742002000053, 0, null],
[121.11061315800009, 31.521551189000036, 0, null],
[121.1102910410001, 31.52115441400008, 0, null],
[121.10974289100011, 31.520629627000062, 0, null],
[121.11040383800002, 31.519894247000025, 0, null],
[121.11245301100007, 31.518057897000062, 0, null],
[121.11423932200012, 31.516115249000052, 0, null],
[121.1136604940001, 31.515710428000034, 0, null],
[121.11377058100004, 31.515589577000071, 0, null],
[121.11328952500003, 31.51520301000005, 0, null],
[121.11369484900001, 31.514749376000054, 0, null],
[121.11375600000008, 31.514680937000037, 0, null],
[121.11406210600001, 31.514338347000034, 0, null],
[121.11348760100009, 31.514011141000026, 0, null],
[121.11337500600007, 31.513947013000063, 0, null],
[121.11306790600008, 31.513772105000044, 0, null],
[121.11230144300009, 31.51461592000004, 0, null],
[121.11118161500008, 31.513871861000041, 0, null],
[121.11073098600002, 31.514356815000042, 0, null],
[121.11053112700006, 31.514244116000043, 0, null],
[121.10998938500006, 31.513819831000035, 0, null],
[121.11004208500003, 31.513764617000049, 0, null],
[121.11207924300004, 31.511636817000067, 0, null],
[121.10545839300005, 31.507489416000055, 0, null],
[121.10671474900005, 31.505947525000067, 0, null],
[121.10963388800008, 31.507679758000052, 0, null],
[121.11235715900011, 31.503673304000074, 0, null],
[121.11893584500001, 31.506970059000025, 0, null],
[121.12809054200011, 31.496705808000058, 0, null],
[121.12988420700003, 31.498173889000043, 0, null],
[121.13492294000002, 31.492458958000043, 0, null],
[121.13818882700002, 31.489085174000024, 0, null],
[121.14293807600006, 31.491494283000065, 0, null],
[121.1411539500001, 31.493476375000057, 0, null],
[121.13506142800009, 31.501268190000076, 0, null],
[121.1351561670001, 31.501324813000053, 0, null],
[121.13410475900002, 31.503439176000029, 0, null],
[121.13179269900002, 31.508088686000065, 0, null],
[121.12867729100003, 31.515920859000062, 0, null],
[121.12794591200009, 31.515818756000044, 0, null],
[121.12767555900007, 31.515879090000055, 0, null],
[121.12769742600005, 31.51604687400004, 0, null],
[121.12746301800007, 31.516039072000069, 0, null],
[121.12734333800006, 31.516073931000051, 0, null],
[121.12722399200004, 31.516157081000074, 0, null],
[121.12707400700003, 31.516301181000074, 0, null],
[121.1269557390001, 31.516515132000052, 0, null],
[121.12671032100002, 31.516611150000074, 0, null],
[121.12650736600006, 31.516651152000065, 0, null],
[121.12610495000001, 31.516613540000037, 0, null],
[121.12549576200001, 31.516420271000072, 0, null],
[121.12515122800005, 31.516222151000079, 0, null],
[121.12467735300004, 31.515886798000054, 0, null],
[121.12451665600008, 31.515709946000072, 0, null],
[121.12424015800002, 31.515277950000041, 0, null],
[121.12407603700001, 31.515134677000049, 0, null],
[121.12388907400009, 31.515043979000041, 0, null],
[121.12348137800006, 31.51503559300005, 0, null],
[121.12316022200002, 31.515090484000041, 0, null],
[121.12323571400009, 31.515787130000035, 0, null],
[121.12295159400003, 31.516110877000074, 0, null],
[121.12331093600005, 31.516276958000049, 0, null],
[121.12319590900006, 31.51651649300004, 0, null],
[121.12277107900002, 31.517022889000032, 0, null],
[121.12249135400009, 31.517202138000073, 0, null],
[121.12218930100005, 31.517666512000062, 0, null],
[121.12156999900003, 31.518801158000031, 0, null],
[121.1214496450001, 31.518964728000071, 0, null],
[121.12129652200008, 31.519052577000025, 0, null],
[121.12111354400008, 31.51924714300003, 0, null],
[121.12104829300006, 31.519488970000054, 0, null],
[121.12090487000012, 31.519671010000025, 0, null],
[121.12077091300011, 31.520029762000036, 0, null],
[121.12063629500005, 31.520189678000065, 0, null],
[121.1205479780001, 31.520429608000029, 0, null],
[121.12043853200009, 31.520932393000066, 0, null],
[121.12024934400006, 31.521223177000024, 0, null],
[121.11976940000011, 31.521735715000034, 0, null],
[121.11950125900012, 31.522127555000054, 0, null],
[121.11916584100004, 31.522530271000051, 0, null],
[121.11775706000003, 31.524086494000073, 0, null],
[121.11878713500005, 31.525347381000074, 0, null]
]
],
[
[
[121.12973188100011, 31.493069185000024, 0, null],
[121.12732770300011, 31.496148108000057, 0, null],
[121.12510554900007, 31.494861420000063, 0, null],
[121.12730611300003, 31.491708293000045, 0, null],
[121.12973188100011, 31.493069185000024, 0, null]
]
]
]
},
"properties": {
"FID": 100,
"Shape_Leng": 0.17673052623300001,
"Shape_Area": 0.00055468075978200001,
"CMC": "花北社区",
"DZWHMC": "娄东街道",
"color": "#B8860B"
}
}
]
}

@ -0,0 +1,313 @@
{
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "EPSG:4490"
}
},
"features": [
{
"type": "Feature",
"id": 202,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.15210206300003, 31.453490119000094],
[121.15130613400015, 31.45483670700014],
[121.15030696000008, 31.456521351000049],
[121.14706991800017, 31.454924208000193],
[121.14324918900013, 31.45304202400024],
[121.14528287800022, 31.450400786000159],
[121.1461368790001, 31.449216880000108],
[121.14660267700015, 31.448841845000061],
[121.1493941870001, 31.450028493000218],
[121.15117412200004, 31.450787285000104],
[121.15124973500019, 31.450653987000067],
[121.1532992880002, 31.451514098000075],
[121.15330743900006, 31.451544017000174],
[121.15250676300013, 31.452819680000118],
[121.15210206300003, 31.453490119000094]
]
]
},
"properties": {
"FID": 201,
"Id": 202,
"name": "大庆锦绣新城"
}
},
{
"type": "Feature",
"id": 215,
"properties": {
"FID": 231,
"Id": 215,
"name": "景瑞·荣御蓝湾"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.14371380584339, 31.460461572031647],
[121.14702601556337, 31.455255311350925],
[121.15022401115527, 31.456816237770738],
[121.14697842634337, 31.46223189101994],
[121.14371380584339, 31.460461572031647]
]
]
}
},
{
"type": "Feature",
"id": 235,
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.08689169600007, 31.469446161000064],
[121.08679089200007, 31.469379570000058],
[121.08766088700008, 31.468154330000061],
[121.08837364100009, 31.467199571000037],
[121.0886989060001, 31.466824578000057],
[121.09114914800011, 31.468210549000048],
[121.09357745900002, 31.469619566000063],
[121.09148624200009, 31.47194227600005],
[121.08689169600007, 31.469446161000064]
]
]
},
"properties": {
"FID": 238,
"Id": 235,
"name": "华盛六园"
}
},
{
"type": "Feature",
"id": 242,
"properties": {
"FID": 225,
"Id": 242,
"name": "星雨华府"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[121.12279891402805, 31.451721436414346],
[121.12331740390771, 31.452040003075219],
[121.12408569179644, 31.452512861528238],
[121.12470258830108, 31.452893988241954],
[121.12531929737979, 31.452327845565964],
[121.12626502014109, 31.451461741968533],
[121.12547674999021, 31.450947315995919],
[121.1260359762196, 31.450347077116263],
[121.12500371372785, 31.449677312470119],
[121.12494091096249, 31.449662354657587],
[121.12475474951661, 31.449689043304577],
[121.12441000674728, 31.450051372156416],
[121.12390550630934, 31.450573576700819],
[121.12279891402805, 31.451721436414346]
]
]
}
},
{
"type": "Feature",
"id": 245,
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[121.13567298958456, 31.454102406409948, 0],
[121.13768475821482, 31.454661905928795, 0],
[121.13907670620884, 31.45514106131147, 0],
[121.14015895699522, 31.45555853531014, 0],
[121.14214039978316, 31.45300449914922, 0],
[121.14107437717665, 31.45254633383576, 0],
[121.13844127068502, 31.45162250056609, 0],
[121.13567298958456, 31.454102406409948, 0]
]
]
]
},
"properties": {
"FID": 229,
"Id": 245,
"name": "高尔夫湖滨花苑"
}
},
{
"type": "Feature",
"id": 251,
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[121.13478750396366, 31.4554114542002, 0],
[121.13800290880931, 31.45706533280174, 0],
[121.1385358975176, 31.456301828615167, 0],
[121.13920674454972, 31.45662609333331, 0],
[121.13988031553205, 31.455681185608626, 0],
[121.13848990390939, 31.454984894100864, 0],
[121.13564086372101, 31.454161945136057, 0],
[121.13478750396366, 31.4554114542002, 0]
]
]
]
},
"properties": {
"FID": 228,
"Id": 251,
"name": "世福园"
}
},
{
"type": "Feature",
"id": 248,
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[121.12910044289922, 31.451999629749007, 0],
[121.1335163778425, 31.454900251289484, 0],
[121.13387411488705, 31.45502115967714, 0],
[121.13505183479573, 31.453894050411556, 0],
[121.1367634499105, 31.45226589209519, 0],
[121.13755914025558, 31.45154599141533, 0],
[121.13402259627087, 31.44996079650474, 0],
[121.13332372310879, 31.449707498096036, 0],
[121.13224567213331, 31.44945754835756, 0],
[121.13005052215875, 31.451209814357746, 0],
[121.12928936509174, 31.45185480022009, 0],
[121.12910044289922, 31.451999629749007, 0]
]
]
]
},
"properties": {
"FID": 230,
"Id": 248,
"name": "华侨花园"
}
},
{
"type": "Feature",
"id": 254,
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[121.13337712525555, 31.4599390265864, 0],
[121.13433252807067, 31.46049940365059, 0],
[121.13560636225301, 31.4612421079844, 0],
[121.13667649840896, 31.459857209704648, 0],
[121.13660222255425, 31.45981491992953, 0],
[121.1366219258422, 31.45977537507781, 0],
[121.13661593417916, 31.45974023389423, 0],
[121.13660080319006, 31.4596974191384, 0],
[121.13659677651934, 31.459652119762985, 0],
[121.13662457023656, 31.459591028573232, 0],
[121.1346309182915, 31.45843238118359, 0],
[121.13439275771833, 31.458707098456827, 0],
[121.13439856151928, 31.458726732038407, 0],
[121.13417547742985, 31.4589822268822, 0],
[121.13411281956859, 31.459037661187136, 0],
[121.13337712525555, 31.4599390265864, 0]
]
]
]
},
"properties": {
"FID": 225,
"Id": 254,
"name": "碧桂园天珵"
}
},
{
"type": "Feature",
"id": 257,
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[121.1346309182915, 31.45843238118359, 0],
[121.13662457023656, 31.459591028573232, 0],
[121.13665450784781, 31.459571077860772, 0],
[121.13675295393595, 31.459540378264492, 0],
[121.1368099534709, 31.459535100152895, 0],
[121.13683066951084, 31.459521792924335, 0],
[121.13685947594122, 31.459486939340177, 0],
[121.13693089629705, 31.45952328917581, 0],
[121.13814370947021, 31.457959191630987, 0],
[121.13694638390011, 31.45734945191755, 0],
[121.1364901969794, 31.457951209075937, 0],
[121.13552176739715, 31.457394303700475, 0],
[121.1346309182915, 31.45843238118359, 0]
]
]
]
},
"properties": {
"FID": 225,
"Id": 257,
"name": "吴中锦绣朝阳"
}
},
{
"type": "Feature",
"id": 260,
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[121.1310254406712, 31.458598471707873, 0],
[121.13304914184576, 31.459759296020913, 0],
[121.13570284420756, 31.45678196603628, 0],
[121.13405432659054, 31.45582401657525, 0],
[121.13200466980022, 31.45770566446173, 0],
[121.1310254406712, 31.458598471707873, 0]
]
]
]
},
"properties": {
"FID": 225,
"Id": 260,
"name": "中南君樾阁"
}
},
{
"type": "Feature",
"id": 267,
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[121.090062550702143, 31.480153267271167],
[121.092243209269853, 31.47733104878057],
[121.089840505197145, 31.476009361892121],
[121.087443982342165, 31.478827408937555],
[121.090062550702143, 31.480153267271167]
]
]
]
},
"properties": {
"FID": 238,
"Id": 267,
"name": "森茂汽车城"
}
}
]
}

@ -5,6 +5,7 @@
@import "./sidebar.scss";
@import "./btn.scss";
@import "./font.css";
@import "./map.css";
body {
height: 100%;

@ -0,0 +1,167 @@
/* leaflet样式 */
.region-name1 {
/* width: 84px !important; */
height: 65px !important;
font-size: 20px;
/* font-family: 'Source Han Sans CN-Bold'; */
font-weight: bold;
text-align: center;
color: #ffffff;
line-height: 1px;
white-space: nowrap;
background: linear-gradient(
0deg,
rgba(79, 126, 248, 0.68),
rgba(0, 96, 255, 0.99)
);
border-radius: 5px;
font-style: italic;
text-stroke: 0.5px #217ff5;
-webkit-text-stroke: 0.5px #217ff5;
text-shadow: 0px 2px 3px rgba(42, 133, 243, 0.67);
}
.region-name2 {
margin-top: -13px !important;
text-align: center;
white-space: nowrap;
font-size: 13px;
font-style: italic;
color: #ffffff;
text-shadow: 0px 2px 3px rgba(42, 133, 243, 0.67);
}
.region-name3 {
margin-top: 5px !important;
text-align: center;
white-space: nowrap;
font-size: 13px;
font-style: italic;
color: #ffffff;
text-shadow: 0px 2px 3px rgba(42, 133, 243, 0.67);
}
.region-name4 {
/* font-family: "xiniu"; */
font-size: 14px;
font-weight: bold;
font-style: italic;
color: #fff7cf;
text-align: center;
white-space: nowrap;
/* text-stroke: 0.7px rgba(0, 0, 0, 1);
-webkit-text-stroke: 0.7px rgba(0, 0, 0, 1);*/
background: linear-gradient(0deg, #ffffff 0%, #cff4ff 50%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
filter: drop-shadow(0 0 0.3px #000) drop-shadow(0 0 0.3px #000)
drop-shadow(0 0 0.3px #000) drop-shadow(0 0 0.3px #000)
drop-shadow(0 0 0.3px #000) drop-shadow(0 0 0.3px #000)
drop-shadow(0 0 0.3px #000);
/* writing-mode: vertical-rl; */
}
.land-name {
font-family: "Alibaba-PuHuiTi-Bold.otf";
font-size: 18px;
font-weight: bold;
text-align: center;
font-style: italic;
color: #ffeb3b;
/* background: linear-gradient(0deg, #ffffff 0%, #fff7cf 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent; */
line-height: 24px;
letter-spacing: 2px;
white-space: nowrap;
/* text-stroke: 0.5px rgba(0, 0, 0, 1);
-webkit-text-stroke: 0.5px rgba(0, 0, 0, 1); */
filter: drop-shadow(0 0 0.75px #000) drop-shadow(0 0 0.75px #000)
drop-shadow(0 0 0.75px #000) drop-shadow(0 0 0.75px #000)
drop-shadow(0 0 0.75px #000);
}
.text-hide .land-name {
display: none;
}
.text-18 .land-name {
font-size: 20px;
}
.text-17 .land-name {
font-size: 15px;
}
.text-16 .land-name {
font-size: 10px;
}
.land-name2 {
font-size: 20px;
font-weight: 400;
text-align: center;
color: #ffffff;
line-height: 85px;
letter-spacing: 2px;
white-space: nowrap;
text-shadow: #000000 1px 0 0, #000000 0 1px 0, #000000 -1px 0 0,
#000000 0 -1px 0;
}
.text-hide .land-name2 {
display: none;
}
.text-18 .land-name2 {
line-height: 95px;
font-size: 20px;
}
.text-17 .land-name2 {
font-size: 14px;
}
.text-16 .land-name2 {
line-height: 55px;
font-size: 7px;
}
.road-name-icon {
color: white;
width: 60px !important;
height: 16px !important;
font-family: "Alibaba-PuHuiTi-Regular.otf";
font-size: 10px;
line-height: 14px;
text-align: center;
/* filter: drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76); */
filter: drop-shadow(0 0 0.3px #9d6e00) drop-shadow(0 0 0.3px #9d6e00)
drop-shadow(0 0 0.3px #9d6e00) drop-shadow(0 0 0.3px #9d6e00)
drop-shadow(0 0 0.3px #9d6e00) drop-shadow(0 0 0.3px #9d6e00)
drop-shadow(0 0 0.3px #9d6e00) drop-shadow(0 0 0.3px #9d6e00)
drop-shadow(0 0 0.3px #9d6e00) drop-shadow(0 0 0.3px #9d6e00)
drop-shadow(0 0 0.3px #9d6e00);
}
.river-name-icon {
color: white;
width: 60px !important;
height: 16px !important;
font-family: "Alibaba-PuHuiTi-Regular.otf";
font-size: 10px;
line-height: 14px;
text-align: center;
/* filter: drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76) drop-shadow(0 0 0.3px #007d76)
drop-shadow(0 0 0.3px #007d76); */
filter: drop-shadow(0 0 0.3px #33816d) drop-shadow(0 0 0.3px #33816d)
drop-shadow(0 0 0.3px #33816d) drop-shadow(0 0 0.3px #33816d)
drop-shadow(0 0 0.3px #33816d) drop-shadow(0 0 0.3px #33816d)
drop-shadow(0 0 0.3px #33816d) drop-shadow(0 0 0.3px #33816d)
drop-shadow(0 0 0.3px #33816d) drop-shadow(0 0 0.3px #33816d)
drop-shadow(0 0 0.3px #33816d);
}
.leaflet-container {
background: transparent !important;
}
.mars3d-template-content label {
margin: 0 10px;
min-width: 75px;
float: left;
}

@ -7,11 +7,29 @@
<script>
import L from "leaflet";
import "@/utils/leaflet.polygon.gradient.js";
import "@/utils/leaflet-rotate/leaflet-rotate-src.js";
import "@/utils/leaflet.rotatedMarker.js";
//
import loujiangjiedaoshequ from "@/assets/data/shequ.json"; //
//
import shequName from "@/assets/data/shequ-name.json";
//
import loujiangjiedao from "@/assets/data/loujiangjiedao.json"; //
import loujiangjiedaoMove from "@/assets/data/loujiangjiedao-move.json"; //
export default {
data() {
return {
townCenter: [31.4865100338683, 121.11104941651722],
mapRotate: 0, //
mapLayers: {
mapLayer1: null,
mapLayer2: null,
mapLayer5: null,
},
globalMap: null,
};
},
mounted() {
@ -29,6 +47,99 @@ export default {
rotate: true,
bearing: this.mapRotate,
});
var rotatePane = this.globalMap.getPane("rotatePane"); //
var noRotatePane = this.globalMap.getPane("norotatePane"); //
//
this.globalMap.createPane("mapLayer1", rotatePane);
this.globalMap.getPane("mapLayer1").style.zIndex = 501;
this.globalMap.getPane("mapLayer1").style.pointerEvents = "none";
//
this.globalMap.createPane("mapLayer2", rotatePane);
this.globalMap.getPane("mapLayer2").style.zIndex = 504;
this.globalMap.getPane("mapLayer2").style.pointerEvents = "none";
//
this.globalMap.createPane("mapLayer5", noRotatePane);
this.globalMap.getPane("mapLayer5").style.zIndex = 702;
this.globalMap.getPane("mapLayer5").style.pointerEvents = "none";
this.mapLayers.mapLayer1 = L.featureGroup().addTo(this.globalMap);
this.mapLayers.mapLayer2 = L.featureGroup().addTo(this.globalMap);
this.mapLayers.mapLayer5 = L.featureGroup().addTo(this.globalMap);
//
this.addStreet();
this.addShequ();
},
addStreet() {
//
L.geoJSON(loujiangjiedaoMove, {
pane: "mapLayer1",
style: function (feature) {
return {
color: "#31A8C0",
weight: 1,
fillColor: "#001530",
fillOpacity: 1,
};
},
}).addTo(this.mapLayers.mapLayer1);
L.geoJSON(loujiangjiedao, {
pane: "mapLayer1",
style: function (feature) {
return {
color: "#31A8C0",
weight: 1,
fillColor:
"linearGradient(60deg, #057BEB 40%, #18A7FC 80%, #057BEB 100%)",
fillOpacity: 1,
};
},
}).addTo(this.mapLayers.mapLayer1);
},
addShequ() {
let geojsons = L.geoJSON(loujiangjiedaoshequ, {
pane: "mapLayer2",
style: function (feature) {
return {
color: "#6ED2FB",
weight: 2,
fillColor: "#19A8FA",
fillOpacity: 0,
};
},
}).addTo(this.mapLayers.mapLayer2);
//
L.geoJSON(shequName, {
pointToLayer: (feature) => {
var myIcon = L.divIcon({
className: "region-name4",
html: feature.properties.TextString,
iconSize: [80, 20],
iconAnchor: [40, 10],
});
var marker = L.marker(
L.latLng(
feature.geometry.coordinates[1],
feature.geometry.coordinates[0]
),
{
pane: "mapLayer5",
icon: myIcon,
rotationAngle: 0,
rotationOrigin: "left center",
}
);
return marker;
},
}).addTo(this.mapLayers.mapLayer5);
},
},
};
@ -36,9 +147,10 @@ export default {
<style>
.leaflet-map-container {
position: relative;
position: absolute;
height: 100%;
width: 100%;
z-index: 5;
}
#leaflet-map {
height: 100%;

@ -1,62 +1,61 @@
<template>
<div v-bind:style="styleObject" class="scale-box">
<slot></slot>
</div>
</template>
<script>
import debounce from "lodash.debounce";
const that = this;
export default {
components: {},
data() {
return {
width: 1920,
height: 1080,
scaleX: null,
scaleY: null,
<div v-bind:style="styleObject" class="scale-box">
<slot></slot>
</div>
</template>
<script>
import debounce from "lodash.debounce";
const that = this;
export default {
components: {},
data() {
return {
width: 2010,
height: 1080,
scaleX: null,
scaleY: null,
};
},
computed: {
styleObject() {
let obj = {
transform: `scale(${this.scaleX},${this.scaleY}) translate(-50%, -50%)`,
WebkitTransform: `scale(${this.scaleX},${this.scaleY}) translate(-50%, -50%)`,
width: this.width + "px",
height: this.height + "px",
};
return obj;
},
computed: {
styleObject() {
let obj = {
transform: `scale(${this.scaleX},${this.scaleY}) translate(-50%, -50%)`,
WebkitTransform: `scale(${this.scaleX},${this.scaleY}) translate(-50%, -50%)`,
width: this.width + "px",
height: this.height + "px",
};
return obj;
},
},
mounted() {
this.getScale();
window.addEventListener("resize", this.setScale);
},
methods: {
getScale() {
// XY
this.scaleX = window.innerWidth / this.width;
this.scaleY = window.innerHeight / this.height;
},
mounted() {
setScale: debounce(function () {
//
this.getScale();
window.addEventListener("resize", this.setScale);
},
methods: {
getScale() {
// XY
this.scaleX = window.innerWidth / this.width;
this.scaleY = window.innerHeight / this.height;
},
setScale: debounce(function () {
//
this.getScale();
}, 500),
},
beforeDestroy() {
window.addEventListener("resize", this.setScale);
},
};
</script>
<style scoped lang="scss">
.scale-box {
transform-origin: 0 0;
position: absolute;
left: 50%;
top: 50%;
transition: 0.3s;
}
</style>
}, 500),
},
beforeDestroy() {
window.addEventListener("resize", this.setScale);
},
};
</script>
<style scoped lang="scss">
.scale-box {
transform-origin: 0 0;
position: absolute;
left: 50%;
top: 50%;
transition: 0.3s;
}
</style>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,168 @@
/**
* L.Control.Rotate
*/
// A tri-state control for map rotation. States are:
// Locked (default)
// Unlocked (user can pinch-rotate)
// Follow (rotation follows device orientation, if available)
L.Control.Rotate = L.Control.extend({
options: {
position: 'topleft',
closeOnZeroBearing: true
},
onAdd: function(map) {
this._onDeviceOrientation = L.Util.throttle(this._unthrottledOnDeviceOrientation, 100, this);
var container = this._container = L.DomUtil.create('div', 'leaflet-control-rotate leaflet-bar');
// this.button = L.Control.Zoom.prototype._createButton.call(this, 'R', 'leaflet-control-rotate', 'leaflet-control-rotate', container, this._toggleLock);
var arrow = this._arrow = L.DomUtil.create('span', 'leaflet-control-rotate-arrow');
arrow.style.backgroundImage = `url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")`;
arrow.style.cursor = 'grab';
arrow.style.display = 'block';
arrow.style.width = '100%';
arrow.style.height = '100%';
arrow.style.backgroundRepeat = 'no-repeat';
arrow.style.backgroundPosition = '50%';
// Copy-pasted from L.Control.Zoom
var link = this._link = L.DomUtil.create('a', 'leaflet-control-rotate-toggle', container);
link.appendChild(arrow);
link.href = '#';
link.title = 'Rotate map';
L.DomEvent
.on(link, 'dblclick', L.DomEvent.stopPropagation)
.on(link, 'mousedown', this._handleMouseDown, this)
.on(link, 'click', L.DomEvent.stop)
.on(link, 'click', this._cycleState, this)
.on(link, 'click', this._refocusOnMap, this);
if (!L.Browser.any3d) {
L.DomUtil.addClass(link, 'leaflet-disabled');
}
this._restyle();
map.on('rotate', this._restyle.bind(this));
// State flag
this._follow = false;
this._canFollow = false;
if (this.options.closeOnZeroBearing && map.getBearing() === 0) {
container.style.display = 'none';
}
return container;
},
_handleMouseDown: function(e) {
L.DomEvent.stopPropagation(e);
this.dragging = true;
this.dragstartX = e.pageX;
this.dragstartY = e.pageY;
L.DomEvent
.on(document, 'mousemove', this._handleMouseDrag, this)
.on(document, 'mouseup', this._handleMouseUp, this);
},
_handleMouseUp: function(e) {
L.DomEvent.stopPropagation(e);
this.dragging = false;
L.DomEvent
.off(document, 'mousemove', this._handleMouseDrag, this)
.off(document, 'mouseup', this._handleMouseUp, this);
},
_handleMouseDrag: function(e) {
if (!this.dragging) { return; }
var deltaX = e.clientX - this.dragstartX;
this._map.setBearing(deltaX);
},
_cycleState: function(ev) {
var map = this._map;
if (!map) { return; }
if (!map.touchRotate.enabled() && !map.compassBearing.enabled()) {
// Go from disabled to touch
map.touchRotate.enable();
// console.log('state is now: touch rotate');
} else {
if (!map.compassBearing.enabled()) {
// Go from touch to compass
map.touchRotate.disable();
map.compassBearing.enable();
// console.log('state is now: compass');
// It is possible that compass is not supported. If so,
// the hangler will automatically go from compass to disabled.
} else {
// Go from compass to disabled
map.compassBearing.disable();
// console.log('state is now: locked');
map.setBearing(0);
if (this.options.closeOnZeroBearing) {
map.touchRotate.enable();
}
}
}
this._restyle();
},
_restyle: function() {
if (this._map.options.rotate) {
var map = this._map;
var bearing = map.getBearing();
if (this.options.closeOnZeroBearing && bearing) {
this._container.style.display = 'block';
}
var cssTransform = 'rotate(' + bearing + 'deg)';
this._arrow.style.transform = cssTransform;
if (map.compassBearing.enabled()) {
this._link.style.backgroundColor = 'orange';
} else if (map.touchRotate.enabled()) {
this._link.style.backgroundColor = null;
} else {
this._link.style.backgroundColor = 'grey';
if (this.options.closeOnZeroBearing && map.getBearing() === 0) {
this._container.style.display = 'none';
}
}
} else {
L.DomUtil.addClass(this._link, 'leaflet-disabled');
}
},
});
L.control.rotate = function(options) {
return new L.Control.Rotate(options);
};
L.Map.mergeOptions({
rotateControl: true,
});
L.Map.addInitHook(function() {
if (this.options.rotateControl) {
var options = typeof this.options.rotateControl === 'object' ? this.options.rotateControl : {};
this.rotateControl = L.control.rotate(options);
this.addControl(this.rotateControl);
}
});

@ -0,0 +1,45 @@
/**
* L.DomUtil
*/
const domUtilProto = L.extend({}, L.DomUtil);
L.extend(L.DomUtil, {
setTransform: function(el, offset, scale, bearing, pivot) {
var pos = offset || new L.Point(0, 0);
if (!bearing) {
offset = pos._round();
return domUtilProto.setTransform.call(this, el, offset, scale);
}
pos = pos.rotateFrom(bearing, pivot);
el.style[L.DomUtil.TRANSFORM] =
'translate3d(' + pos.x + 'px,' + pos.y + 'px' + ',0)' +
(scale ? ' scale(' + scale + ')' : '') +
' rotate(' + bearing + 'rad)';
},
setPosition: function(el, point, bearing, pivot) { // (HTMLElement, Point[, Boolean])
if (!bearing) {
return domUtilProto.setPosition.call(this, el, point);
}
/*eslint-disable */
el._leaflet_pos = point;
/*eslint-enable */
if (L.Browser.any3d) {
L.DomUtil.setTransform(el, point, undefined, bearing, pivot);
} else {
el.style.left = point.x + 'px';
el.style.top = point.y + 'px';
}
},
// Constants for rotation
DEG_TO_RAD: Math.PI / 180,
RAD_TO_DEG: 180 / Math.PI,
});

@ -0,0 +1,10 @@
/**
* L.Draggable
*/
L.Draggable.include({
updateMapBearing: function(mapBearing) {
this._mapBearing = mapBearing;
},
});

@ -0,0 +1,41 @@
/**
* L.Point
*/
L.extend(L.Point.prototype, {
// Rotate around (0,0) by applying the 2D rotation matrix:
// ⎡ x' ⎤ = ⎡ cos θ -sin θ ⎤ ⎡ x ⎤
// ⎣ y' ⎦ ⎣ sin θ cos θ ⎦ ⎣ y ⎦
// Theta must be given in radians.
rotate: function(theta) {
if (!theta) { return this; }
var sinTheta = Math.sin(theta);
var cosTheta = Math.cos(theta);
return new L.Point(
this.x * cosTheta - this.y * sinTheta,
this.x * sinTheta + this.y * cosTheta
);
},
// Rotate around (pivot.x, pivot.y) by:
// 1. subtract (pivot.x, pivot.y)
// 2. rotate around (0, 0)
// 3. add (pivot.x, pivot.y) back
// same as `this.subtract(pivot).rotate(theta).add(pivot)`
rotateFrom: function(theta, pivot) {
if (!theta) { return this; }
var sinTheta = Math.sin(theta);
var cosTheta = Math.cos(theta);
var cx = pivot.x,
cy = pivot.y;
var x = this.x - cx,
y = this.y - cy;
return new L.Point(
x * cosTheta - y * sinTheta + cx,
x * sinTheta + y * cosTheta + cy
);
},
});

@ -0,0 +1,45 @@
/**
* Based on Leaflet structure (ver. 1.7)
*
* @see https://github.com/Leaflet/Leaflet/blob/master/src/Leaflet.js
*/
// import {version} from '../package.json';
// export {version};
// core
// export * from './core/index';
// dom
export * from './dom/DomUtil';
export * from './dom/Draggable';
// geometry
export * from './geometry/Point';
// geo
// export * from './geo/index';
// layer
export * from './layer/DivOverlay';
export * from './layer/Popup';
export * from './layer/Tooltip';
export * from './layer/marker/Icon';
export * from './layer/marker/Marker';
export * from './layer/tile/GridLayer';
export * from './layer/vector/Canvas';
export * from './layer/vector/Renderer';
export * from './layer/vector/SVG';
// map
export * from './map/Map';
export * from './map/handler/CompassBearing';
export * from './map/handler/ContainerMutation';
export * from './map/handler/TouchGestures';
export * from './map/handler/TouchRotate';
export * from './map/handler/ShiftKeyRotate';
export * from './map/handler/TouchZoom';
// control
export * from './control/Rotate';

@ -0,0 +1,37 @@
/**
* L.DivOverlay
*/
const divOverlayProto = L.extend({}, L.DivOverlay.prototype);
L.DivOverlay.include({
getEvents: function() {
return L.extend(divOverlayProto.getEvents.call(this), { rotate: this._updatePosition });
},
_updatePosition: function() {
if (!this._map) { return; }
var pos = this._map.latLngToLayerPoint(this._latlng),
offset = L.point(this.options.offset),
anchor = this._getAnchor();
if (this._zoomAnimated) {
// TODO: use divOverlayProto._updatePosition
if (this._map._rotate) {
pos = this._map.rotatedPointToMapPanePoint(pos);
}
L.DomUtil.setPosition(this._container, pos.add(anchor));
} else {
offset = offset.add(pos).add(anchor);
}
var bottom = this._containerBottom = -offset.y,
left = this._containerLeft = -Math.round(this._containerWidth / 2) + offset.x;
// bottom position the popup in case the height of the popup changes (images loading etc)
this._container.style.bottom = bottom + 'px';
this._container.style.left = left + 'px';
},
});

@ -0,0 +1,65 @@
/**
* L.Popup
*/
const popupProto = L.extend({}, L.Popup.prototype);
L.Popup.include({
_animateZoom: function(e) {
if (!this._map._rotate) {
popupProto._animateZoom.call(this, e);
}
var pos = this._map._latLngToNewLayerPoint(this._latlng, e.zoom, e.center),
anchor = this._getAnchor();
pos = this._map.rotatedPointToMapPanePoint(pos);
L.DomUtil.setPosition(this._container, pos.add(anchor));
},
_adjustPan: function() {
if (!this.options.autoPan || (this._map._panAnim && this._map._panAnim._inProgress)) { return; }
var map = this._map,
marginBottom = parseInt(L.DomUtil.getStyle(this._container, 'marginBottom'), 10) || 0,
containerHeight = this._container.offsetHeight + marginBottom,
containerWidth = this._containerWidth,
layerPos = new L.Point(this._containerLeft, -containerHeight - this._containerBottom);
layerPos._add(L.DomUtil.getPosition(this._container));
// var containerPos = map.layerPointToContainerPoint(layerPos);
// TODO: use popupProto._adjustPan
var containerPos = layerPos._add(this._map._getMapPanePos()),
padding = L.point(this.options.autoPanPadding),
paddingTL = L.point(this.options.autoPanPaddingTopLeft || padding),
paddingBR = L.point(this.options.autoPanPaddingBottomRight || padding),
size = map.getSize(),
dx = 0,
dy = 0;
if (containerPos.x + containerWidth + paddingBR.x > size.x) { // right
dx = containerPos.x + containerWidth - size.x + paddingBR.x;
}
if (containerPos.x - dx - paddingTL.x < 0) { // left
dx = containerPos.x - paddingTL.x;
}
if (containerPos.y + containerHeight + paddingBR.y > size.y) { // bottom
dy = containerPos.y + containerHeight - size.y + paddingBR.y;
}
if (containerPos.y - dy - paddingTL.y < 0) { // top
dy = containerPos.y - paddingTL.y;
}
// @namespace Map
// @section Popup events
// @event autopanstart: Event
// Fired when the map starts autopanning when opening a popup.
if (dx || dy) {
map
.fire('autopanstart')
.panBy([dx, dy]);
}
},
});

@ -0,0 +1,28 @@
/**
* L.Tooltip
*/
const tooltipProto = L.extend({}, L.Tooltip.prototype);
L.Tooltip.include({
_updatePosition: function() {
if (!this._map._rotate) {
return tooltipProto._updatePosition.call(this);
}
var pos = this._map.latLngToLayerPoint(this._latlng);
pos = this._map.rotatedPointToMapPanePoint(pos);
this._setPosition(pos);
},
_animateZoom: function(e) {
if (!this._map._rotate) {
return tooltipProto._animateZoom.call(this, e);
}
var pos = this._map._latLngToNewLayerPoint(this._latlng, e.zoom, e.center);
pos = this._map.rotatedPointToMapPanePoint(pos);
this._setPosition(pos);
},
});

@ -0,0 +1,35 @@
/**
* L.Icon
*/
const iconProto = L.extend({}, L.Icon.prototype);
L.Icon.include({
_setIconStyles: function(img, name) {
var options = this.options;
var sizeOption = options[name + 'Size'];
if (typeof sizeOption === 'number') {
sizeOption = [sizeOption, sizeOption];
}
var size = L.point(sizeOption),
anchor = L.point(name === 'shadow' && options.shadowAnchor || options.iconAnchor ||
size && size.divideBy(2, true));
img.className = 'leaflet-marker-' + name + ' ' + (options.className || '');
if (anchor) {
img.style.marginLeft = (-anchor.x) + 'px';
img.style.marginTop = (-anchor.y) + 'px';
// TODO: use iconProto._setIconStyles
img.style[L.DomUtil.TRANSFORM + "Origin"] = anchor.x + "px " + anchor.y + "px 0px";
}
if (size) {
img.style.width = size.x + 'px';
img.style.height = size.y + 'px';
}
},
});

@ -0,0 +1,138 @@
/**
* L.Handler.MarkerDrag
*/
var markerDragProto;
var MarkerDrag = {
_onDragStart: function() {
if (!this._marker._map._rotate) {
return markerDragProto._onDragStart.call(this)
}
this._draggable.updateMapBearing(this._marker._map._bearing);
},
_onDrag: function(e) {
var marker = this._marker,
// TODO: use markerDragProto._onDrag
rotated_marker = marker.options.rotation || marker.options.rotateWithView,
shadow = marker._shadow,
iconPos = L.DomUtil.getPosition(marker._icon);
// TODO: use markerDragProto._onDrag
// update shadow position
if (!rotated_marker && shadow) {
L.DomUtil.setPosition(shadow, iconPos);
}
// TODO: use markerDragProto._onDrag
if (marker._map._rotate) {
// Reverse calculation from mapPane coordinates to rotatePane coordinates
iconPos = marker._map.mapPanePointToRotatedPoint(iconPos);
}
var latlng = marker._map.layerPointToLatLng(iconPos);
marker._latlng = latlng;
e.latlng = latlng;
e.oldLatLng = this._oldLatLng;
// TODO: use markerDragProto._onDrag
if (rotated_marker) marker.setLatLng(latlng); // use `setLatLng` to presisit rotation. low efficiency
else marker.fire('move', e); // `setLatLng` will trig 'move' event. we imitate here.
// @event drag: Event
// Fired repeatedly while the user drags the marker.
marker
.fire('drag', e);
},
_onDragEnd: function(e) {
if (this._marker._map._rotate) {
this._marker.update();
}
markerDragProto._onDragEnd.call(this, e);
},
};
/**
* L.Marker
*/
const markerProto = L.extend({}, L.Marker.prototype);
L.Marker.mergeOptions({
// @option rotation: Number = 0
// Rotation of this marker in rad
rotation: 0,
// @option rotateWithView: Boolean = false
// Rotate this marker when map rotates
rotateWithView: false,
});
L.Marker.include({
getEvents: function() {
return L.extend(markerProto.getEvents.call(this), { rotate: this.update });
},
onAdd: function(map) {
markerProto.onAdd.call(this, map);
map.on('rotate', this.update, this);
},
_initInteraction: function() {
var ret = markerProto._initInteraction.call(this);
if (this.dragging && this.dragging.enabled() && this._map && this._map._rotate) {
// L.Handler.MarkerDrag is used internally by L.Marker to make the markers draggable
markerDragProto = markerDragProto || Object.getPrototypeOf(this.dragging);
this.dragging._onDragStart = MarkerDrag._onDragStart.bind(this.dragging);
this.dragging._onDrag = MarkerDrag._onDrag.bind(this.dragging);
this.dragging._onDragEnd = MarkerDrag._onDragEnd.bind(this.dragging);
this.dragging.disable();
this.dragging.enable();
}
return ret;
},
_setPos: function(pos) {
// TODO: use markerProto._setPos
if (this._map._rotate) {
pos = this._map.rotatedPointToMapPanePoint(pos);
}
// TODO: use markerProto._setPos
var bearing = this.options.rotation || 0;
if (this.options.rotateWithView) {
bearing += this._map._bearing;
}
// TODO: use markerProto._setPos
L.DomUtil.setPosition(this._icon, pos, bearing, pos);
// TODO: use markerProto._setPos
if (this._shadow) {
L.DomUtil.setPosition(this._shadow, pos, bearing, pos);
}
this._zIndex = pos.y + this.options.zIndexOffset;
this._resetZIndex();
},
_updateZIndex: function(offset) {
if (!this._map._rotate) {
return markerProto._updateZIndex.call(this, offset)
}
this._icon.style.zIndex = Math.round(this._zIndex + offset);
},
setRotation: function(rotation) {
this.options.rotation = rotation;
this.update();
},
});

@ -0,0 +1,39 @@
/**
* L.GridLayer
*/
const gridLayerProto = L.extend({}, L.GridLayer.prototype);
L.GridLayer.include({
getEvents: function() {
var events = gridLayerProto.getEvents.call(this);
if (this._map._rotate && !this.options.updateWhenIdle) {
if (!this._onRotate) {
this._onRotate = L.Util.throttle(this._onMoveEnd, this.options.updateInterval, this);
}
events.rotate = this._onRotate;
}
return events;
},
_getTiledPixelBounds: function(center) {
if (!this._map._rotate) {
return gridLayerProto._getTiledPixelBounds.call(this, center);
}
var map = this._map,
mapZoom = map._animatingZoom ? Math.max(map._animateToZoom, map.getZoom()) : map.getZoom(),
scale = map.getZoomScale(mapZoom, this._tileZoom),
pixelCenter = map.project(center, this._tileZoom).floor(),
size = map.getSize(),
halfSize = new L.Bounds([
map.containerPointToLayerPoint([0, 0]).floor(),
map.containerPointToLayerPoint([size.x, 0]).floor(),
map.containerPointToLayerPoint([0, size.y]).floor(),
map.containerPointToLayerPoint([size.x, size.y]).floor()
]).getSize().divideBy(scale * 2);
return new L.Bounds(pixelCenter.subtract(halfSize), pixelCenter.add(halfSize));
},
});

@ -0,0 +1,25 @@
/**
* L.Canvas
*/
const canvasProto = L.extend({}, L.Canvas.prototype);
L.Canvas.include({
onAdd: function() {
canvasProto.onAdd.call(this);
// When rotating the canvas itself, it is cleared by some weird reason, so redraw.
this._map.on('rotate', this._redraw, this);
},
onRemove: function() {
canvasProto.onRemove.call(this);
this._map.off('rotate', this._redraw, this);
},
_update: function() {
canvasProto._update.call(this);
// Tell paths to redraw themselves
this.fire('update')
},
});

@ -0,0 +1,60 @@
/**
* L.Renderer
*/
const rendererProto = L.extend({}, L.Renderer.prototype);
L.Renderer.include({
onAdd: function() {
rendererProto.onAdd.call(this);
// this._map.on('rotate', this._update, this);
},
onRemove: function() {
rendererProto.onRemove.call(this);
// this._map.off('rotate', this._update, this);
},
_updateTransform: function(center, zoom) {
if (!this._map._rotate) {
return rendererProto._updateTransform.call(this, center, zoom);
}
var scale = this._map.getZoomScale(zoom, this._zoom),
offset = this._map._latLngToNewLayerPoint(this._topLeft, zoom, center);
if (L.Browser.any3d) {
L.DomUtil.setTransform(this._container, offset, scale);
} else {
L.DomUtil.setPosition(this._container, offset);
}
},
_update: function() {
if (!this._map._rotate) {
return rendererProto._update.call(this);
}
// Update pixel bounds of renderer container (for positioning/sizing/clipping later)
// Subclasses are responsible of firing the 'update' event.
var p = this.options.padding,
map = this._map,
size = this._map.getSize(),
padMin = size.multiplyBy(-p),
padMax = size.multiplyBy(1 + p),
//// TODO: Somehow refactor this out into map.something() - the code is
//// pretty much the same as in GridLayer.
clip = new L.Bounds([
map.containerPointToLayerPoint([padMin.x, padMin.y]).floor(),
map.containerPointToLayerPoint([padMin.x, padMax.y]).floor(),
map.containerPointToLayerPoint([padMax.x, padMin.y]).floor(),
map.containerPointToLayerPoint([padMax.x, padMax.y]).floor()
]);
//min = this._map.containerPointToLayerPoint(size.multiplyBy(-p)).round();
this._bounds = clip;
// this._topLeft = clip.min;
this._topLeft = this._map.layerPointToLatLng(clip.min);
this._center = this._map.getCenter();
this._zoom = this._map.getZoom();
},
});

@ -0,0 +1,15 @@
/**
* L.SVG
*/
const svgProto = L.extend({}, L.SVG.prototype);
L.SVG.include({
_update: function() {
svgProto._update.call(this);
if (this._map._rotate) {
this.fire('update');
}
},
});

@ -0,0 +1,235 @@
/**
* L.Map
*/
const mapProto = L.extend({}, L.Map.prototype);
L.Map.mergeOptions({ rotate: false, bearing: 0, });
L.Map.include({
initialize: function(id, options) { // (HTMLElement or String, Object)
if (options.rotate) {
this._rotate = true;
this._bearing = 0;
}
mapProto.initialize.call(this, id, options);
if(this.options.rotate){
this.setBearing(this.options.bearing);
}
},
// createPane: function(name, container) {
// if (!this._rotate || name == 'mapPane') {
// return mapProto.createPane.call(this, name, container);
// }
// // init "rotatePane"
// if (!this._rotatePane) {
// // this._pivot = this.getSize().divideBy(2);
// this._rotatePane = mapProto.createPane.call(this, 'rotatePane', this._mapPane);
// L.DomUtil.setPosition(this._rotatePane, new L.Point(0, 0), this._bearing, this._pivot);
// }
// return mapProto.createPane.call(this, name, container || this._rotatePane);
// },
containerPointToLayerPoint: function(point) { // (Point)
if (!this._rotate) {
return mapProto.containerPointToLayerPoint.call(this, point);
}
return L.point(point)
.subtract(this._getMapPanePos())
.rotateFrom(-this._bearing, this._getRotatePanePos())
.subtract(this._getRotatePanePos());
},
getBounds: function() {
if (!this._rotate) {
return mapProto.getBounds.call(this);
}
var size = this.getSize();
var topleft = this.layerPointToLatLng(this.containerPointToLayerPoint([0, 0])),
topright = this.layerPointToLatLng(this.containerPointToLayerPoint([size.x, 0])),
bottomright = this.layerPointToLatLng(this.containerPointToLayerPoint([size.x, size.y])),
bottomleft = this.layerPointToLatLng(this.containerPointToLayerPoint([0, size.y]));
// Use LatLngBounds' build-in constructor that automatically extends the bounds to fit the passed points
return new L.LatLngBounds([topleft, topright, bottomright, bottomleft]);
},
layerPointToContainerPoint: function(point) { // (Point)
if (!this._rotate) {
return mapProto.layerPointToContainerPoint.call(this, point);
}
return L.point(point)
.add(this._getRotatePanePos())
.rotateFrom(this._bearing, this._getRotatePanePos())
.add(this._getMapPanePos());
},
// Rotation methods
// setBearing will work with just the 'theta' parameter.
setBearing: function(theta) {
if (!L.Browser.any3d || !this._rotate) { return; }
var rotatePanePos = this._getRotatePanePos();
var halfSize = this.getSize().divideBy(2);
this._pivot = this._getMapPanePos().clone().multiplyBy(-1).add(halfSize);
rotatePanePos = rotatePanePos.rotateFrom(-this._bearing, this._pivot);
this._bearing = theta * L.DomUtil.DEG_TO_RAD; // TODO: mod 360
this._rotatePanePos = rotatePanePos.rotateFrom(this._bearing, this._pivot);
L.DomUtil.setPosition(this._rotatePane, rotatePanePos, this._bearing, this._pivot);
this.fire('rotate');
},
getBearing: function() {
return this._bearing * L.DomUtil.RAD_TO_DEG;
},
_initPanes: function() {
var panes = this._panes = {};
this._paneRenderers = {};
// @section
//
// Panes are DOM elements used to control the ordering of layers on the map. You
// can access panes with [`map.getPane`](#map-getpane) or
// [`map.getPanes`](#map-getpanes) methods. New panes can be created with the
// [`map.createPane`](#map-createpane) method.
//
// Every map has the following default panes that differ only in zIndex.
//
// @pane mapPane: HTMLElement = 'auto'
// Pane that contains all other map panes
this._mapPane = this.createPane('mapPane', this._container);
L.DomUtil.setPosition(this._mapPane, new L.Point(0, 0));
if (this._rotate) {
this._rotatePane = this.createPane('rotatePane', this._mapPane);
this._norotatePane = this.createPane('norotatePane', this._mapPane);
// @pane tilePane: HTMLElement = 2
// Pane for tile layers
this.createPane('tilePane', this._rotatePane);
// @pane overlayPane: HTMLElement = 4
// Pane for overlays like polylines and polygons
this.createPane('overlayPane', this._rotatePane);
// @pane shadowPane: HTMLElement = 5
// Pane for overlay shadows (e.g. marker shadows)
this.createPane('shadowPane', this._norotatePane);
// @pane markerPane: HTMLElement = 6
// Pane for marker icons
this.createPane('markerPane', this._norotatePane);
// @pane tooltipPane: HTMLElement = 650
// Pane for tooltips.
this.createPane('tooltipPane', this._norotatePane);
// @pane popupPane: HTMLElement = 700
// Pane for popups.
this.createPane('popupPane', this._norotatePane);
} else {
// @pane tilePane: HTMLElement = 2
// Pane for tile layers
this.createPane('tilePane');
// @pane overlayPane: HTMLElement = 4
// Pane for overlays like polylines and polygons
this.createPane('overlayPane');
// @pane shadowPane: HTMLElement = 5
// Pane for overlay shadows (e.g. marker shadows)
this.createPane('shadowPane');
// @pane markerPane: HTMLElement = 6
// Pane for marker icons
this.createPane('markerPane');
// @pane tooltipPane: HTMLElement = 650
// Pane for tooltips.
this.createPane('tooltipPane');
// @pane popupPane: HTMLElement = 700
// Pane for popups.
this.createPane('popupPane');
}
if (!this.options.markerZoomAnimation) {
L.DomUtil.addClass(panes.markerPane, 'leaflet-zoom-hide');
L.DomUtil.addClass(panes.shadowPane, 'leaflet-zoom-hide');
}
},
// @method rotatedPointToMapPanePoint(point: Point): Point
// Converts a coordinate from the rotated pane reference system
// to the reference system of the not rotated map pane.
rotatedPointToMapPanePoint: function(point) {
return L.point(point).rotate(this._bearing)._add(this._getRotatePanePos());
},
// @method mapPanePointToRotatedPoint(point: Point): Point
// Converts a coordinate from the not rotated map pane reference system
// to the reference system of the rotated pane.
mapPanePointToRotatedPoint: function(point) {
return L.point(point)._subtract(this._getRotatePanePos()).rotate(-this._bearing);
},
// offset of the specified place to the current center in pixels
_getCenterOffset: function(latlng) {
var centerOffset = mapProto._getCenterOffset.call(this, latlng);
if (this._rotate) {
centerOffset = centerOffset.rotate(this._bearing);
}
return centerOffset;
},
_getRotatePanePos: function() {
return this._rotatePanePos || new L.Point(0, 0);
},
_getNewPixelOrigin: function(center, zoom) {
var viewHalf = this.getSize()._divideBy(2);
if (!this._rotate) {
mapProto._getNewPixelOrigin.call(this, center, zoom);
}
return this.project(center, zoom)
.rotate(this._bearing)
._subtract(viewHalf)
._add(this._getMapPanePos())
._add(this._getRotatePanePos())
.rotate(-this._bearing)
._round();
},
_handleGeolocationResponse: function(pos) {
var lat = pos.coords.latitude,
lng = pos.coords.longitude,
// TODO: use mapProto._handleGeolocationResponse
hdg = pos.coords.heading,
latlng = new L.LatLng(lat, lng),
bounds = latlng.toBounds(pos.coords.accuracy),
options = this._locateOptions;
if (options.setView) {
var zoom = this.getBoundsZoom(bounds);
this.setView(latlng, options.maxZoom ? Math.min(zoom, options.maxZoom) : zoom);
}
var data = {
latlng: latlng,
bounds: bounds,
timestamp: pos.timestamp,
// TODO: use mapProto._handleGeolocationResponse
heading: hdg
};
for (var i in pos.coords) {
if (typeof pos.coords[i] === 'number') {
data[i] = pos.coords[i];
}
}
// @event locationfound: LocationEvent
// Fired when geolocation (using the [`locate`](#map-locate) method)
// went successfully.
this.fire('locationfound', data);
},
});

@ -0,0 +1,41 @@
/*
* L.Map.CompassBearing will rotate the map according to a smartphone's compass.
*/
L.Map.CompassBearing = L.Handler.extend({
initialize: function(map) {
if (!window.DeviceOrientationEvent) {
this._capable = false;
return;
}
this._capable = true;
this._map = map;
this._throttled = L.Util.throttle(this._onDeviceOrientation, 1000, this);
},
addHooks: function() {
if (this._capable && this._map._rotate) {
L.DomEvent.on(window, 'deviceorientation', this._throttled, this);
}
},
removeHooks: function() {
if (this._capable && this._map._rotate) {
L.DomEvent.off(window, 'deviceorientation', this._throttled, this);
}
},
_onDeviceOrientation: function(event) {
if (event.alpha !== null) {
this._map.setBearing(event.alpha - window.orientation);
}
},
});
// @section Handlers
// @property compassBearing: Handler
// Compass bearing handler.
L.Map.addInitHook('addHandler', 'compassBearing', L.Map.CompassBearing);

@ -0,0 +1,53 @@
/*
* L.Handler.ContainerMutation triggers `invalidateResize` when the map's DOM container mutates.
*/
// @namespace Map
// @section Interaction Options
L.Map.mergeOptions({
// @option trackContainerMutation: Boolean = false
// Whether the map uses [mutation observers](https://developer.mozilla.org/docs/Web/API/MutationObserver)
// to detect changes in its container and trigger `invalidateSize`. Disabled
// by default due to support not being available in all web browsers.
trackContainerMutation: false
});
L.Map.ContainerMutation = L.Handler.extend({
addHooks: function() {
if (!L.Browser.mutation) {
return;
}
if (!this._observer) {
this._observer = new MutationObserver(L.Util.bind(this._onMutation, this));
}
this._observer.observe(this._map.getContainer(), {
childList: false,
attributes: true,
characterData: false,
subtree: false,
attributeFilter: ['style']
});
},
removeHooks: function() {
if (!L.Browser.mutation) {
return;
}
this._observer.disconnect();
},
_onMutation: function() {
this._map.invalidateSize();
},
});
// @section Handlers
// @property containerMutation: Handler
// Container mutation handler (disabled unless [`trackContainerMutation`](#map-trackcontainermutation) is set).
L.Map.addInitHook('addHandler', 'trackContainerMutation', L.Map.ContainerMutation);

@ -0,0 +1,52 @@
/*
* L.Handler.ShiftKeyRotate is used by L.Map to add shift-wheel rotation.
*/
// @namespace Map
// @section Interaction Options
L.Map.mergeOptions({
// @section ShiftKey interaction options
// @option shiftKeyRotate: Boolean|String = *
// Whether the map can be rotated with a shit-wheel rotation
shiftKeyRotate: true,
});
L.Map.ShiftKeyRotate = L.Handler.extend({
addHooks: function() {
L.DomEvent.on(this._map._container, "wheel", this._handleShiftScroll, this);
// this._map.shiftKeyRotate.enable();
this._map.shiftKeyRotate.rotate = true;
},
removeHooks: function() {
L.DomEvent.off(this._map._container, "wheel", this._handleShiftScroll, this);
this._map.shiftKeyRotate.rotate = false;
},
_handleShiftScroll: function(e) {
if (e.shiftKey) {
e.preventDefault();
this._map.scrollWheelZoom.disable();
this._map.setBearing((this._map._bearing * L.DomUtil.RAD_TO_DEG) + Math.sign(e.deltaY) * 5);
} else {
this._map.scrollWheelZoom.enable();
}
},
});
// @section Handlers
// @property touchZoom: Handler
// Touch rotate handler.
L.Map.addInitHook('addHandler', 'shiftKeyRotate', L.Map.ShiftKeyRotate);
// decrease "scrollWheelZoom" handler priority over "shiftKeyRotate" handler
L.Map.addInitHook(function() {
if (this.scrollWheelZoom.enabled() && this.shiftKeyRotate.enabled()) {
this.scrollWheelZoom.disable();
this.scrollWheelZoom.enable();
}
});

@ -0,0 +1,162 @@
/*
* L.Handler.TouchGestures is both TouchZoom plus TouchRotate.
*/
// @namespace Map
// @section Interaction Options
L.Map.mergeOptions({
// @option bounceAtZoomLimits: Boolean = true
// Set it to false if you don't want the map to zoom beyond min/max zoom
// and then bounce back when pinch-zooming.
bounceAtZoomLimits: true,
});
L.Map.TouchGestures = L.Handler.extend({
initialize: function(map) {
this._map = map;
this.rotate = !!this._map.options.touchRotate;
this.zoom = !!this._map.options.touchZoom;
},
addHooks: function() {
L.DomEvent.on(this._map._container, 'touchstart', this._onTouchStart, this);
},
removeHooks: function() {
L.DomEvent.off(this._map._container, 'touchstart', this._onTouchStart, this);
},
_onTouchStart: function(e) {
var map = this._map;
if (!e.touches || e.touches.length !== 2 || map._animatingZoom || this._zooming || this._rotating) { return; }
var p1 = map.mouseEventToContainerPoint(e.touches[0]),
p2 = map.mouseEventToContainerPoint(e.touches[1]),
vector = p1.subtract(p2);
this._centerPoint = map.getSize()._divideBy(2);
this._startLatLng = map.containerPointToLatLng(this._centerPoint);
if (this.zoom) {
if (map.options.touchZoom !== 'center') {
this._pinchStartLatLng = map.containerPointToLatLng(p1.add(p2)._divideBy(2));
}
this._startDist = p1.distanceTo(p2);
this._startZoom = map.getZoom();
this._zooming = true;
} else {
this._zooming = false;
}
if (this.rotate) {
this._startTheta = Math.atan(vector.x / vector.y);
this._startBearing = map.getBearing();
if (vector.y < 0) { this._startBearing += 180; }
this._rotating = true;
} else {
this._rotating = false;
}
this._moved = false;
map.stop();
L.DomEvent
.on(document, 'touchmove', this._onTouchMove, this)
.on(document, 'touchend', this._onTouchEnd, this);
L.DomEvent.preventDefault(e);
},
_onTouchMove: function(e) {
if (!e.touches || e.touches.length !== 2 || !(this._zooming || this._rotating)) { return; }
var map = this._map,
p1 = map.mouseEventToContainerPoint(e.touches[0]),
p2 = map.mouseEventToContainerPoint(e.touches[1]),
vector = p1.subtract(p2),
scale = p1.distanceTo(p2) / this._startDist,
delta;
if (this._rotating) {
var theta = Math.atan(vector.x / vector.y);
var bearingDelta = (theta - this._startTheta) * L.DomUtil.RAD_TO_DEG;
if (vector.y < 0) { bearingDelta += 180; }
if (bearingDelta) {
/// TODO: The pivot should be the last touch point, but zoomAnimation manages to
/// overwrite the rotate pane position. Maybe related to #3529.
map.setBearing(this._startBearing - bearingDelta);
}
}
if (this._zooming) {
this._zoom = map.getScaleZoom(scale, this._startZoom);
if (!map.options.bounceAtZoomLimits && (
(this._zoom < map.getMinZoom() && scale < 1) ||
(this._zoom > map.getMaxZoom() && scale > 1))) {
this._zoom = map._limitZoom(this._zoom);
}
if (map.options.touchZoom === 'center') {
this._center = this._startLatLng;
if (scale === 1) { return; }
} else {
// Get delta from pinch to center, so centerLatLng is delta applied to initial pinchLatLng
delta = p1._add(p2)._divideBy(2)._subtract(this._centerPoint);
if (scale === 1 && delta.x === 0 && delta.y === 0) { return; }
var alpha = -map.getBearing() * L.DomUtil.DEG_TO_RAD;
this._center = map.unproject(map.project(this._pinchStartLatLng).subtract(delta.rotate(alpha)));
}
}
if (!this._moved) {
map._moveStart(true);
this._moved = true;
}
L.Util.cancelAnimFrame(this._animRequest);
var moveFn = L.bind(map._move, map, this._center, this._zoom, { pinch: true, round: false });
this._animRequest = L.Util.requestAnimFrame(moveFn, this, true);
L.DomEvent.preventDefault(e);
},
_onTouchEnd: function() {
if (!this._moved || !this._zooming) {
this._zooming = false;
return;
}
this._zooming = false;
this._rotating = false;
L.Util.cancelAnimFrame(this._animRequest);
L.DomEvent
.off(document, 'touchmove', this._onTouchMove)
.off(document, 'touchend', this._onTouchEnd);
if (this.zoom) {
// Pinch updates GridLayers' levels only when snapZoom is off, so snapZoom becomes noUpdate.
if (this._map.options.zoomAnimation) {
this._map._animateZoom(this._center, this._map._limitZoom(this._zoom), true, this._map.options.snapZoom);
} else {
this._map._resetView(this._center, this._map._limitZoom(this._zoom));
}
}
},
});
// @section Handlers
// @property touchGestures: Handler
// Touch gestures handler.
L.Map.addInitHook('addHandler', 'touchGestures', L.Map.TouchGestures);

@ -0,0 +1,32 @@
/*
* L.Handler.TouchRotate is used by L.Map to add two-finger rotation gestures.
*/
// @namespace Map
// @section Interaction Options
L.Map.mergeOptions({
// @section Touch interaction options
// @option touchRotate: Boolean|String = *
// Whether the map can be rotated with a two-finger rotation gesture
touchRotate: false,
});
L.Map.TouchRotate = L.Handler.extend({
addHooks: function() {
this._map.touchGestures.enable();
this._map.touchGestures.rotate = true;
},
removeHooks: function() {
this._map.touchGestures.rotate = false;
},
});
// @section Handlers
// @property touchZoom: Handler
// Touch rotate handler.
L.Map.addInitHook('addHandler', 'touchRotate', L.Map.TouchRotate);

@ -0,0 +1,38 @@
/*
* L.Handler.TouchZoom is used by L.Map to add pinch zoom on supported mobile browsers.
*/
// @namespace Map
// @section Interaction Options
L.Map.mergeOptions({
// @section Touch interaction options
// @option touchZoom: Boolean|String = *
// Whether the map can be zoomed by touch-dragging with two fingers. If
// passed `'center'`, it will zoom to the center of the view regardless of
// where the touch events (fingers) were. Enabled for touch-capable web
// browsers except for old Androids.
touchZoom: L.Browser.touch && !L.Browser.android23,
bounceAtZoomLimits: false,
});
L.Map.TouchZoom = L.Handler.extend({
addHooks: function() {
L.DomUtil.addClass(this._map._container, 'leaflet-touch-zoom');
this._map.touchGestures.enable();
this._map.touchGestures.zoom = true;
},
removeHooks: function() {
L.DomUtil.removeClass(this._map._container, 'leaflet-touch-zoom');
this._map.touchGestures.zoom = false;
},
});
// @section Handlers
// @property touchZoom: Handler
// Touch zoom handler.
L.Map.addInitHook('addHandler', 'touchZoom', L.Map.TouchZoom);

@ -0,0 +1,335 @@
/* eslint-disable */
(function (factory, window) {
// define an AMD module that relies on 'leaflet'
if (typeof define === 'function' && define.amd) {
define(['leaflet'], factory);
// define a Common JS module that relies on 'leaflet'
} else if (typeof exports === 'object') {
module.exports = factory(require('leaflet'));
}
// attach your plugin to the global 'L' letiable
if (typeof window !== 'undefined' && window.L) {
window.L.ArrowPath = factory(L);
}
}(function (L) {
L.SVG.include({
_updateStyle: function (layer) {
let path = layer._path,
options = layer.options;
if (!path) {
return;
}
if (options.stroke) {
path.setAttribute('stroke', options.color);
path.setAttribute('stroke-opacity', options.opacity);
path.setAttribute('stroke-width', options.weight);
path.setAttribute('stroke-linecap', options.lineCap);
path.setAttribute('stroke-linejoin', options.lineJoin);
if (options.dashArray) {
path.setAttribute('stroke-dasharray', options.dashArray);
} else {
path.removeAttribute('stroke-dasharray');
}
if (options.dashOffset) {
path.setAttribute('stroke-dashoffset', options.dashOffset);
} else {
path.removeAttribute('stroke-dashoffset');
}
} else {
path.setAttribute('stroke', 'none');
}
if (options.fill) {
this._polyFill(layer, path, options);
path.setAttribute('fill-opacity', options.fillOpacity);
path.setAttribute('fill-rule', options.fillRule || 'evenodd');
} else {
path.setAttribute('fill', 'none');
}
},
_polyFill(layer, path, options) {
let fillColor = options.fillColor;
let isLinearGradient = fillColor.match(/^linearGradient\(/);
let isRadialGradient = fillColor.match(/^radialGradient\(/);
if (fillColor.match(/^#/)) {
path.setAttribute('fill', fillColor || options.color);
} else if (isLinearGradient || isRadialGradient) {
let gradientOpt = this._addGradient(fillColor);
if (isLinearGradient) {
this._addLinearGradient(layer, gradientOpt);
} else {
this._addRadialGradient(layer, gradientOpt);
}
} else if (fillColor.match(/^url\(/)) {
this._fillByImage(layer);
}
},
_addLinearGradient: function (layer, gradientOpt) {
let path = layer._path;
let colorStr = layer.options.fillColor;
let gradientId = 'gradient' + gradientOpt.index;
this._addDefs();
if (!gradientOpt.exist) {
let gradient = L.SVG.create('linearGradient');
gradient.setAttribute('id', gradientId);
let arrMap = this._getLinearProperties(colorStr, ['linearGradient(', ')']);
this._addStops(gradient, arrMap);
this._addAngle(gradient, arrMap.angle);
this._defs.appendChild(gradient);
}
path.setAttribute('fill', 'url(#' + gradientId + ')');
},
_addRadialGradient: function (layer, gradientOpt) {
let path = layer._path;
let colorStr = layer.options.fillColor;
let gradientId = 'gradient' + gradientOpt.index;
this._addDefs();
if (!gradientOpt.exist) {
let gradient = L.SVG.create('radialGradient');
gradient.setAttribute('id', gradientId);
let arrMap = this._getRadialProperties(colorStr, ['radialGradient(', ')']);
this._addStops(gradient, arrMap);
this._addAttribute(gradient, arrMap);
//
this._defs.appendChild(gradient);
}
path.setAttribute('fill', 'url(#' + gradientId + ')');
},
_addAttribute(gradient, arr) {
gradient.setAttribute('cx', arr.cx);
gradient.setAttribute('cy', arr.cy);
gradient.setAttribute('r', arr.r);
gradient.setAttribute('fx', arr.fx);
gradient.setAttribute('fy', arr.fy);
},
_getRadialProperties(colorStr, replaceArr) {
let string = colorStr;
for (let i = 0, l = replaceArr.length; i < l; i++) {
let str = replaceArr[i];
string = string.replace(str, '');
}
let arrays = string.split(/[\,]+/);
let colorArr = arrays.slice(5);
let resColors = [];
let resOffsets = [];
let offsetNum = 0;
for (let i = 0, l = colorArr.length; i < l; i++) {
let str = colorArr[i];
let opts = str.trim().split(/\s+/);
resColors.push(opts[0]);
if (opts.length > 1 || i === l - 1) {
let offset;
if (opts.length > 1) {
offset = parseFloat(opts[1]);
} else {
offset = 100;
}
let len = resOffsets.length;
if (offsetNum > 0) {
let startNum = len - offsetNum - 1;
let startVal = parseFloat(resOffsets[startNum]);
let step = (offset - startVal) / (offsetNum + 1);
for (let j = 1; j <= offsetNum; j++) {
resOffsets[startNum + j] = startVal + step * j + '%';
}
offsetNum = 0;
}
resOffsets.push(offset + '%');
} else {
if (i !== 0) {
offsetNum = offsetNum + 1;
resOffsets.push('');
} else {
resOffsets.push('0%');
}
}
}
return {
cx: arrays[0].trim(),
cy: arrays[1].trim(),
r: arrays[2].trim(),
fx: arrays[3].trim(),
fy: arrays[4].trim(),
colors: resColors,
offsets: resOffsets
}
},
_addGradient(gradient) {
if (!this._gradientArray) {
this._gradientArray = [];
}
let gradientStr = gradient.split(/[\s\,\-\(\)]+/).join('');
let index = this._gradientArray.indexOf(gradientStr);
if (index > -1) {
return { index: index, exist: true }
}
this._gradientArray.push(gradientStr);
return { index: this._gradientArray.length - 1, exist: false }
},
_addDefs() {
if (!this._defs) {
this._defs = L.SVG.create('defs');
this._container.appendChild(this._defs);
}
},
_addAngle(gradient, angle) {
gradient.setAttribute('x1', '0');
gradient.setAttribute('y1', '0');
gradient.setAttribute('x2', '1');
gradient.setAttribute('y2', '0');
gradient.setAttribute('gradientTransform', 'rotate(' + angle.replace('deg', '') + ')');
},
_addStops(gradient, options) {
let colors = options.colors;
let offsets = options.offsets;
for (let i = 0, len = colors.length; i < len; i++) {
let stop = L.SVG.create('stop');
stop.setAttribute('offset', offsets[i]);
stop.setAttribute('stop-color', colors[i]);
gradient.appendChild(stop);
}
},
_getLinearProperties(colorStr, replaceArr) {
let string = colorStr;
for (let i = 0, l = replaceArr.length; i < l; i++) {
let str = replaceArr[i];
string = string.replace(str, '');
}
let arrays = string.split(/[\,]+/);
let colorArr = arrays.slice(1);
let resAngle = arrays[0].trim();
let resColors = [];
let resOffsets = [];
let offsetNum = 0;
for (let i = 0, l = colorArr.length; i < l; i++) {
let str = colorArr[i];
let opts = str.trim().split(/\s+/);
resColors.push(opts[0]);
if (opts.length > 1 || i === l - 1) {
let offset;
if (opts.length > 1) {
offset = parseFloat(opts[1]);
} else {
offset = 100;
}
let len = resOffsets.length;
if (offsetNum > 0) {
let startNum = len - offsetNum - 1;
let startVal = parseFloat(resOffsets[startNum]);
let step = (offset - startVal) / (offsetNum + 1);
for (let j = 1; j <= offsetNum; j++) {
resOffsets[startNum + j] = startVal + step * j + '%';
}
offsetNum = 0;
}
resOffsets.push(offset + '%');
} else {
if (i !== 0) {
offsetNum = offsetNum + 1;
resOffsets.push('');
} else {
resOffsets.push('0%');
}
}
}
return {
angle: resAngle,
colors: resColors,
offsets: resOffsets
}
},
//借鉴自插件leaflet-polygon-fillPattern
_fillByImage: function (layer) {
let path = layer._path,
options = layer.options,
fill = options.fillColor;
this._addDefs();
let _img_url = fill.replace(/url\(+/, '').replace(/\)+/, '');/*.substring(4, fill.length - 1)*/
let _refOption = this._addRefId(_img_url);
let _ref_id = _img_url + _refOption.index;
if (!_refOption.exist) {
this._addPattern(_img_url, _ref_id, options);
}
path.setAttribute('fill', "url(#" + _ref_id + ")");
},
_addRefId(url) {
if (!this._imgUrls) {
this._imgUrls = [];
}
let index = this._imgUrls.indexOf(url);
if (index > -1) {
return { index: index, exist: true }
}
this._imgUrls.push(url);
return { index: this._imgUrls.length - 1, exist: false }
},
_addPattern(_img_url, _ref_id, options) {
let _im = new Image();
_im.src = _img_url;
let _p = L.SVG.create('pattern');
_p.setAttribute('id', _ref_id);
_p.setAttribute('x', '0');
_p.setAttribute('y', '0');
_p.setAttribute('patternUnits', 'userSpaceOnUse');
_p.setAttribute('width', '24');
_p.setAttribute('height', '24');
let _rect = L.SVG.create('rect');
_rect.setAttribute('width', 24);
_rect.setAttribute('height', 24);
_rect.setAttribute('x', 0);
_rect.setAttribute('x', 0);
_rect.setAttribute('fill', options.fillColor || options.color);
let _img = L.SVG.create('image');
_img.setAttribute('x', '0');
_img.setAttribute('y', '0');
_img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', _img_url);
_img.setAttribute('width', '24');
_img.setAttribute('height', '24');
_p.appendChild(_rect);
_p.appendChild(_img);
this._defs.appendChild(_p);
_im.onload = function () {
_p.setAttribute('width', _im.width);
_p.setAttribute('height', _im.height);
_img.setAttribute('width', _im.width);
_img.setAttribute('height', _im.height);
};
}
})
}, window));

@ -0,0 +1,62 @@
(function () {
// save these original methods before they are overwritten
var proto_initIcon = L.Marker.prototype._initIcon;
var proto_setPos = L.Marker.prototype._setPos;
var oldIE = L.DomUtil.TRANSFORM === "msTransform";
L.Marker.addInitHook(function () {
var iconOptions = this.options.icon && this.options.icon.options;
var iconAnchor = iconOptions && this.options.icon.options.iconAnchor;
if (iconAnchor) {
iconAnchor = iconAnchor[0] + "px " + iconAnchor[1] + "px";
}
this.options.rotationOrigin =
this.options.rotationOrigin || iconAnchor || "center bottom";
this.options.rotationAngle = this.options.rotationAngle || 0;
// Ensure marker keeps rotated during dragging
this.on("drag", function (e) {
e.target._applyRotation();
});
});
L.Marker.include({
_initIcon: function () {
proto_initIcon.call(this);
},
_setPos: function (pos) {
proto_setPos.call(this, pos);
this._applyRotation();
},
_applyRotation: function () {
if (this.options.rotationAngle) {
this._icon.style[L.DomUtil.TRANSFORM + "Origin"] =
this.options.rotationOrigin;
if (oldIE) {
// for IE 9, use the 2D rotation
this._icon.style[L.DomUtil.TRANSFORM] =
"rotate(" + this.options.rotationAngle + "deg)";
} else {
// for modern browsers, prefer the 3D accelerated version
this._icon.style[L.DomUtil.TRANSFORM] +=
" rotateZ(" + this.options.rotationAngle + "deg)";
}
}
},
setRotationAngle: function (angle) {
this.options.rotationAngle = angle;
this.update();
return this;
},
setRotationOrigin: function (origin) {
this.options.rotationOrigin = origin;
this.update();
return this;
},
});
})();
Loading…
Cancel
Save