1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
|
{
"cells": [
{
"cell_type": "code",
"execution_count": 16,
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2023-11-07T00:07:54.400654Z",
"start_time": "2023-11-07T00:07:54.375821Z"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import folium\n",
"import utils"
]
},
{
"cell_type": "code",
"execution_count": 17,
"outputs": [],
"source": [
"# Load the data\n",
"ListA = pd.read_csv('List A.csv')\n",
"ListB = pd.read_csv('List B.csv')\n",
"ListC = pd.read_csv('List C.csv')\n",
"ListD = pd.read_csv('List D.csv')"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:07:54.430515Z",
"start_time": "2023-11-07T00:07:54.381537Z"
}
},
"id": "73b780e762c9de37"
},
{
"cell_type": "code",
"execution_count": 18,
"outputs": [],
"source": [
"# Create two centroids, one in the North End and one in the Financial District\n",
"centroids = [[42.364506, -71.054733], [42.358894, -71.056742]]\n",
"\n",
"northeastern_coordinate = \"-71.09033,42.33976\""
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:07:54.431407Z",
"start_time": "2023-11-07T00:07:54.392677Z"
}
},
"id": "65e208650eb43b4"
},
{
"cell_type": "code",
"execution_count": 19,
"outputs": [],
"source": [
"# Combine the two lists and add a column to indicate the list\n",
"ListA['list'] = 'A'\n",
"ListB['list'] = 'B'\n",
"ListC['list'] = 'C'\n",
"ListD['list'] = 'D'\n",
"\n",
"TotalList = pd.concat([ListA, ListB, ListC])"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:07:54.431829Z",
"start_time": "2023-11-07T00:07:54.397279Z"
}
},
"id": "ffe4025e97a6c6b9"
},
{
"cell_type": "code",
"execution_count": 20,
"outputs": [],
"source": [
"# Remove all columns but name and gps\n",
"TotalList = TotalList[['name', 'gps', 'list']]"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:07:54.432180Z",
"start_time": "2023-11-07T00:07:54.401907Z"
}
},
"id": "72657779b4484aae"
},
{
"cell_type": "code",
"execution_count": 21,
"outputs": [],
"source": [
"# Convert the gps column to a list of lists for k-means\n",
"TotalList['gps'] = TotalList['gps'].apply(lambda x: x.strip('[]').split(','))\n",
"TotalList['gps'] = TotalList['gps'].apply(lambda x: [float(i) for i in x])"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:07:54.432238Z",
"start_time": "2023-11-07T00:07:54.405216Z"
}
},
"id": "a157ffaec020a29a"
},
{
"cell_type": "code",
"execution_count": 22,
"outputs": [
{
"data": {
"text/plain": " name gps list \\\n0 521 Commercial Street #525 [42.3688272, -71.0553792] A \n1 Acorn St [42.3576234, -71.0688746] A \n2 Arlington's Great Meadows [42.4299758, -71.2038948] A \n3 Arthur Fiedler Statue [42.3565057, -71.0754527] A \n4 BU Beach [42.3511927, -71.1060828] A \n.. ... ... ... \n28 The Clam Box [42.2763168, -71.0092883] C \n29 The Partisans [42.3478375, -71.0404428] C \n30 Union Oyster House [42.361288, -71.056908] C \n31 Victoria's Diner [42.3270498, -71.0667744] C \n32 Wollaston Beach [42.2806539, -71.0119933] C \n\n normalized_gps \n0 [0.7251058917247415, 0.8141430878559053] \n1 [0.6747391031099019, 0.778052752104061] \n2 [1.0, 0.41697235794883575] \n3 [0.6697144722136962, 0.7604611403245493] \n4 [0.6458298305822171, 0.6785480000609988] \n.. ... \n28 [0.30922451563130937, 0.9374025730216268] \n29 [0.6307464973238023, 0.8540870458656248] \n30 [0.6912133469876947, 0.8100546647415456] \n31 [0.5372951958288665, 0.7836692527743693] \n32 [0.32872198960456106, 0.9301686741961767] \n\n[131 rows x 4 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>name</th>\n <th>gps</th>\n <th>list</th>\n <th>normalized_gps</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>521 Commercial Street #525</td>\n <td>[42.3688272, -71.0553792]</td>\n <td>A</td>\n <td>[0.7251058917247415, 0.8141430878559053]</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Acorn St</td>\n <td>[42.3576234, -71.0688746]</td>\n <td>A</td>\n <td>[0.6747391031099019, 0.778052752104061]</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Arlington's Great Meadows</td>\n <td>[42.4299758, -71.2038948]</td>\n <td>A</td>\n <td>[1.0, 0.41697235794883575]</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Arthur Fiedler Statue</td>\n <td>[42.3565057, -71.0754527]</td>\n <td>A</td>\n <td>[0.6697144722136962, 0.7604611403245493]</td>\n </tr>\n <tr>\n <th>4</th>\n <td>BU Beach</td>\n <td>[42.3511927, -71.1060828]</td>\n <td>A</td>\n <td>[0.6458298305822171, 0.6785480000609988]</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>28</th>\n <td>The Clam Box</td>\n <td>[42.2763168, -71.0092883]</td>\n <td>C</td>\n <td>[0.30922451563130937, 0.9374025730216268]</td>\n </tr>\n <tr>\n <th>29</th>\n <td>The Partisans</td>\n <td>[42.3478375, -71.0404428]</td>\n <td>C</td>\n <td>[0.6307464973238023, 0.8540870458656248]</td>\n </tr>\n <tr>\n <th>30</th>\n <td>Union Oyster House</td>\n <td>[42.361288, -71.056908]</td>\n <td>C</td>\n <td>[0.6912133469876947, 0.8100546647415456]</td>\n </tr>\n <tr>\n <th>31</th>\n <td>Victoria's Diner</td>\n <td>[42.3270498, -71.0667744]</td>\n <td>C</td>\n <td>[0.5372951958288665, 0.7836692527743693]</td>\n </tr>\n <tr>\n <th>32</th>\n <td>Wollaston Beach</td>\n <td>[42.2806539, -71.0119933]</td>\n <td>C</td>\n <td>[0.32872198960456106, 0.9301686741961767]</td>\n </tr>\n </tbody>\n</table>\n<p>131 rows × 4 columns</p>\n</div>"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Create a new column with normalized gps coordinates and centroids\n",
"TotalList['normalized_gps'], norm_centroids = utils.normalize_gps(TotalList['gps'].values.tolist(), centroids)\n",
"display(TotalList)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:07:54.432731Z",
"start_time": "2023-11-07T00:07:54.412279Z"
}
},
"id": "a03ebde91b87fa3b"
},
{
"cell_type": "markdown",
"source": [
"# Cluster and Minimize"
],
"metadata": {
"collapsed": false
},
"id": "4bd41be9aca5094b"
},
{
"cell_type": "code",
"execution_count": 23,
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n",
" super()._check_params_vs_input(X, default_n_init=10)\n",
"/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: RuntimeWarning: Explicit initial center position passed: performing only one init in KMeans instead of n_init=10.\n",
" super()._check_params_vs_input(X, default_n_init=10)\n"
]
}
],
"source": [
"# Cluster and minimize the data\n",
"df, route_1_coordinates, route_2_coordinates = utils.cluster_and_minimize(TotalList, centroids, norm_centroids,\n",
" northeastern_coordinate, 0.5)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:08:20.577006Z",
"start_time": "2023-11-07T00:07:54.416349Z"
}
},
"id": "ee9b3c1ecb360976"
},
{
"cell_type": "code",
"execution_count": 24,
"outputs": [],
"source": [
"# Create a JSON request for the API\n",
"# This is the data we want to get from the API\n",
"route_1 = utils.list_to_string(route_1_coordinates)\n",
"route_2 = utils.list_to_string(route_2_coordinates)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:08:20.591584Z",
"start_time": "2023-11-07T00:08:20.577492Z"
}
},
"id": "aa618161182b5b07"
},
{
"cell_type": "code",
"execution_count": 25,
"outputs": [],
"source": [
"# Create a dataframe from the JSON\n",
"df1 = utils.create_json_df(route_1, utils.list_to_string([centroids[0]]), northeastern_coordinate)\n",
"df2 = utils.create_json_df(route_2, utils.list_to_string([centroids[1]]), northeastern_coordinate)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:08:22.409355Z",
"start_time": "2023-11-07T00:08:20.579890Z"
}
},
"id": "32c485788eedd94"
},
{
"cell_type": "code",
"execution_count": 26,
"outputs": [],
"source": [
"# Add columns for the route number\n",
"df1['route'] = 1\n",
"df2['route'] = 2\n",
"\n",
"# Concatenate the two dataframes\n",
"df = pd.concat([df1, df2], ignore_index=True)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:08:22.425179Z",
"start_time": "2023-11-07T00:08:22.412707Z"
}
},
"id": "49dba1f17ca8337e"
},
{
"cell_type": "code",
"execution_count": 27,
"outputs": [
{
"data": {
"text/plain": " waypoint_index trips_index \\\n0 0 0 \n13 1 0 \n68 2 0 \n40 3 0 \n22 4 0 \n.. ... ... \n14 67 0 \n11 68 0 \n69 69 0 \n19 70 0 \n71 71 0 \n\n hint distance \\\n0 dMQAgDTDAIAuAAAAEgAAAAAAAAAAAAAAiaamQKk960AAAA... 1.113855 \n13 oLwsgCS9LIBHAAAA2AAAAAAAAABgAQAAkQwAQdo1v0EAAA... 2.532529 \n68 CL0sgBS9LIAhAAAAagAAAAAAAAAAAAAAfoF0QPCwOkEAAA... 7.608103 \n40 YbwsgEO9LIBbAAAAEgAAAAAAAAAPAAAA5ua1QcswjkAAAA... 0.468602 \n22 UkAEgFxABIB8AAAAAAAAAAAAAAAYAgAAVjBdQQAAAAAAAA... 6.397300 \n.. ... ... \n14 -mUsgHZmLIATAAAAYgEAAL0AAADpAAAALf8HQHZ8HUK-9a... 55.355565 \n11 43YhgPN2IYA1AAAAJAAAAAAAAAA5AAAAEha0QWgpbEEAAA... 18.896385 \n69 CdQhgB0OA4AYAAAAHgAAADkAAAAAAAAALdMlQdSMQ0Fd0r... 10.970598 \n19 XAAigHIAIoBKAAAASwAAAFUAAABDAQAARGUEQURlBEG2ZR... 11.054154 \n71 DoUhgBeFIYCcAAAAJgAAAAAAAAARAAAAm0CKQdkZiEAAAA... 0.236958 \n\n name location lat lon \\\n0 State Street [-71.056741, 42.358884] -71.056741 42.358884 \n13 [-71.056995, 42.36049] -71.056995 42.360490 \n68 [-71.056994, 42.361263] -71.056994 42.361263 \n40 Creek Square [-71.056819, 42.361534] -71.056819 42.361534 \n22 [-71.059255, 42.359295] -71.059255 42.359295 \n.. ... ... ... ... \n14 [-71.049204, 42.325624] -71.049204 42.325624 \n11 Lucy Street [-71.06221, 42.324934] -71.062210 42.324934 \n69 [-71.066844, 42.327134] -71.066844 42.327134 \n19 [-71.071196, 42.34085] -71.071196 42.340850 \n71 Northeastern (Inbound) [-71.090331, 42.339762] -71.090331 42.339762 \n\n route \n0 2 \n13 2 \n68 2 \n40 2 \n22 2 \n.. ... \n14 2 \n11 2 \n69 2 \n19 2 \n71 2 \n\n[72 rows x 9 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>waypoint_index</th>\n <th>trips_index</th>\n <th>hint</th>\n <th>distance</th>\n <th>name</th>\n <th>location</th>\n <th>lat</th>\n <th>lon</th>\n <th>route</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0</td>\n <td>0</td>\n <td>dMQAgDTDAIAuAAAAEgAAAAAAAAAAAAAAiaamQKk960AAAA...</td>\n <td>1.113855</td>\n <td>State Street</td>\n <td>[-71.056741, 42.358884]</td>\n <td>-71.056741</td>\n <td>42.358884</td>\n <td>2</td>\n </tr>\n <tr>\n <th>13</th>\n <td>1</td>\n <td>0</td>\n <td>oLwsgCS9LIBHAAAA2AAAAAAAAABgAQAAkQwAQdo1v0EAAA...</td>\n <td>2.532529</td>\n <td></td>\n <td>[-71.056995, 42.36049]</td>\n <td>-71.056995</td>\n <td>42.360490</td>\n <td>2</td>\n </tr>\n <tr>\n <th>68</th>\n <td>2</td>\n <td>0</td>\n <td>CL0sgBS9LIAhAAAAagAAAAAAAAAAAAAAfoF0QPCwOkEAAA...</td>\n <td>7.608103</td>\n <td></td>\n <td>[-71.056994, 42.361263]</td>\n <td>-71.056994</td>\n <td>42.361263</td>\n <td>2</td>\n </tr>\n <tr>\n <th>40</th>\n <td>3</td>\n <td>0</td>\n <td>YbwsgEO9LIBbAAAAEgAAAAAAAAAPAAAA5ua1QcswjkAAAA...</td>\n <td>0.468602</td>\n <td>Creek Square</td>\n <td>[-71.056819, 42.361534]</td>\n <td>-71.056819</td>\n <td>42.361534</td>\n <td>2</td>\n </tr>\n <tr>\n <th>22</th>\n <td>4</td>\n <td>0</td>\n <td>UkAEgFxABIB8AAAAAAAAAAAAAAAYAgAAVjBdQQAAAAAAAA...</td>\n <td>6.397300</td>\n <td></td>\n <td>[-71.059255, 42.359295]</td>\n <td>-71.059255</td>\n <td>42.359295</td>\n <td>2</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>14</th>\n <td>67</td>\n <td>0</td>\n <td>-mUsgHZmLIATAAAAYgEAAL0AAADpAAAALf8HQHZ8HUK-9a...</td>\n <td>55.355565</td>\n <td></td>\n <td>[-71.049204, 42.325624]</td>\n <td>-71.049204</td>\n <td>42.325624</td>\n <td>2</td>\n </tr>\n <tr>\n <th>11</th>\n <td>68</td>\n <td>0</td>\n <td>43YhgPN2IYA1AAAAJAAAAAAAAAA5AAAAEha0QWgpbEEAAA...</td>\n <td>18.896385</td>\n <td>Lucy Street</td>\n <td>[-71.06221, 42.324934]</td>\n <td>-71.062210</td>\n <td>42.324934</td>\n <td>2</td>\n </tr>\n <tr>\n <th>69</th>\n <td>69</td>\n <td>0</td>\n <td>CdQhgB0OA4AYAAAAHgAAADkAAAAAAAAALdMlQdSMQ0Fd0r...</td>\n <td>10.970598</td>\n <td></td>\n <td>[-71.066844, 42.327134]</td>\n <td>-71.066844</td>\n <td>42.327134</td>\n <td>2</td>\n </tr>\n <tr>\n <th>19</th>\n <td>70</td>\n <td>0</td>\n <td>XAAigHIAIoBKAAAASwAAAFUAAABDAQAARGUEQURlBEG2ZR...</td>\n <td>11.054154</td>\n <td></td>\n <td>[-71.071196, 42.34085]</td>\n <td>-71.071196</td>\n <td>42.340850</td>\n <td>2</td>\n </tr>\n <tr>\n <th>71</th>\n <td>71</td>\n <td>0</td>\n <td>DoUhgBeFIYCcAAAAJgAAAAAAAAARAAAAm0CKQdkZiEAAAA...</td>\n <td>0.236958</td>\n <td>Northeastern (Inbound)</td>\n <td>[-71.090331, 42.339762]</td>\n <td>-71.090331</td>\n <td>42.339762</td>\n <td>2</td>\n </tr>\n </tbody>\n</table>\n<p>72 rows × 9 columns</p>\n</div>"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(df2)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:08:22.440853Z",
"start_time": "2023-11-07T00:08:22.424158Z"
}
},
"id": "f231d9a35358988c"
},
{
"cell_type": "code",
"execution_count": 28,
"outputs": [
{
"data": {
"text/plain": "<folium.folium.Map at 0x13df5cf10>",
"text/html": "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe srcdoc=\"<!DOCTYPE html>\n<html>\n<head>\n \n <meta http-equiv="content-type" content="text/html; charset=UTF-8" />\n \n <script>\n L_NO_TOUCH = false;\n L_DISABLE_3D = false;\n </script>\n \n <style>html, body {width: 100%;height: 100%;margin: 0;padding: 0;}</style>\n <style>#map {position:absolute;top:0;bottom:0;right:0;left:0;}</style>\n <script src="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js"></script>\n <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>\n <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js"></script>\n <script src="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js"></script>\n <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css"/>\n <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css"/>\n <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"/>\n <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css"/>\n <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css"/>\n <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css"/>\n \n <meta name="viewport" content="width=device-width,\n initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n <style>\n #map_7877700440c5f43aa18c8ede28939731 {\n position: relative;\n width: 100.0%;\n height: 100.0%;\n left: 0.0%;\n top: 0.0%;\n }\n .leaflet-container { font-size: 1rem; }\n </style>\n \n</head>\n<body>\n \n \n <div class="folium-map" id="map_7877700440c5f43aa18c8ede28939731" ></div>\n \n</body>\n<script>\n \n \n var map_7877700440c5f43aa18c8ede28939731 = L.map(\n "map_7877700440c5f43aa18c8ede28939731",\n {\n center: [42.349915918518526, -71.08287357037038],\n crs: L.CRS.EPSG3857,\n zoom: 11,\n zoomControl: true,\n preferCanvas: false,\n }\n );\n\n \n\n \n \n var tile_layer_795a1c0090a191ebfcdaf38d4845211a = L.tileLayer(\n "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",\n {"attribution": "Data by \\u0026copy; \\u003ca target=\\"_blank\\" href=\\"http://openstreetmap.org\\"\\u003eOpenStreetMap\\u003c/a\\u003e, under \\u003ca target=\\"_blank\\" href=\\"http://www.openstreetmap.org/copyright\\"\\u003eODbL\\u003c/a\\u003e.", "detectRetina": false, "maxNativeZoom": 18, "maxZoom": 18, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var poly_line_f1aff51d071984d60e311bfbaa7d9d02 = L.polyline(\n [[42.364361, -71.054865], [42.367607, -71.08097], [42.361529, -71.090578], [42.362555, -71.096306], [42.3614, -71.101475], [42.36265, -71.10141], [42.363685, -71.101083], [42.364024, -71.1088], [42.381759, -71.093444], [42.379731, -71.094916], [42.377355, -71.094764], [42.380957, -71.097894], [42.380072, -71.096887], [42.382238, -71.102512], [42.382131, -71.102659], [42.374259, -71.110851], [42.376696, -71.115952], [42.378275, -71.114496], [42.378452, -71.115739], [42.375457, -71.119379], [42.373491, -71.118959], [42.373266, -71.120839], [42.383573, -71.112746], [42.383988, -71.110771], [42.388412, -71.119219], [42.38859, -71.119303], [42.396589, -71.122704], [42.388907, -71.133098], [42.410941, -71.168458], [42.429978, -71.203921], [42.313798, -71.359917], [42.314504, -71.227365], [42.324682, -71.16198], [42.33162, -71.155413], [42.341017, -71.162549], [42.343387, -71.142763], [42.349667, -71.146009], [42.350083, -71.146124], [42.361942, -71.18542], [42.356842, -71.143863], [42.363221, -71.128473], [42.352585, -71.131464], [42.352999, -71.130896], [42.351932, -71.124132], [42.351083, -71.106096], [42.342619, -71.121734], [42.331874, -71.125847], [42.336, -71.112246], [42.336448, -71.10963], [42.332401, -71.100092], [42.332009, -71.098267], [42.33047, -71.099348], [42.329829, -71.090904], [42.339096, -71.093834], [42.338007, -71.099284], [42.341231, -71.094327], [42.342001, -71.095003], [42.344689, -71.096959], [42.346361, -71.089677], [42.349997, -71.085166], [42.348977, -71.091358], [42.34194, -71.083465], [42.339762, -71.090331]],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "noClip": false, "opacity": 1.0, "smoothFactor": 1.0, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_7ab6c495c1c579ae42fd9c631ce28561 = L.circleMarker(\n [42.364361, -71.054865],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_c4abf7ba809e70e7720137c52fe8ca2d = L.circleMarker(\n [42.367607, -71.08097],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_5069655fce924da994e7f3e68284369e = L.circleMarker(\n [42.361529, -71.090578],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_3e5112ac9e7fe655e58526dcbd409e81 = L.circleMarker(\n [42.362555, -71.096306],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_c1e70d4d20fdc08cdef613c2f78f9632 = L.circleMarker(\n [42.3614, -71.101475],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_89c9eed73635020118e2504d93ff3d77 = L.circleMarker(\n [42.36265, -71.10141],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_a1b5a1f9a3ba1497826f4ce91297f75a = L.circleMarker(\n [42.363685, -71.101083],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_48d9b59c1129c7af8d9c29c3c027b16b = L.circleMarker(\n [42.364024, -71.1088],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_ead9a2e744a76158d6688c085f5989e4 = L.circleMarker(\n [42.381759, -71.093444],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_9b38bc594210f6216e921835e7968e13 = L.circleMarker(\n [42.379731, -71.094916],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_7072484705f846d1ee3b119084624757 = L.circleMarker(\n [42.377355, -71.094764],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_a0614ff83c17232b70daa6e9fc65acb3 = L.circleMarker(\n [42.380957, -71.097894],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_95ba128cccb4d9647ff83632705a55f7 = L.circleMarker(\n [42.380072, -71.096887],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_71939069f97db18b04fed6fb8486debc = L.circleMarker(\n [42.382238, -71.102512],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_07622e93ea660fc0d2645b5d056ad842 = L.circleMarker(\n [42.382131, -71.102659],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_4e2350c9e3c3beef67a39af5832c7857 = L.circleMarker(\n [42.374259, -71.110851],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_f4ffa8d573fffae785ba68f52b9b31c6 = L.circleMarker(\n [42.376696, -71.115952],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_217ae04b3b4c170f3c3061a496b75526 = L.circleMarker(\n [42.378275, -71.114496],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_b46846fb25554fead6543d92935efc3f = L.circleMarker(\n [42.378452, -71.115739],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e2b4682fc31c97cd617343fc78b5d443 = L.circleMarker(\n [42.375457, -71.119379],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_77cdbb7307a7ed1900136cc0b87f106c = L.circleMarker(\n [42.373491, -71.118959],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_fcbaeba185bd909db625fa0a2d529a7f = L.circleMarker(\n [42.373266, -71.120839],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_b09bce69aecf2d13f7014ceb116626b6 = L.circleMarker(\n [42.383573, -71.112746],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_5ccbd01b468969a33bff276630ac9f9c = L.circleMarker(\n [42.383988, -71.110771],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_6ce77fe55674b2fa0773880daef6e2c2 = L.circleMarker(\n [42.388412, -71.119219],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e169ff6d3e091d7b097ebab993889bc3 = L.circleMarker(\n [42.38859, -71.119303],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_982918975a314a1e3103f338e9dc586f = L.circleMarker(\n [42.396589, -71.122704],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_deb8c6369eb1fb1ba9d537dcf7922b59 = L.circleMarker(\n [42.388907, -71.133098],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e33fabfd91365aab1c26e2ec896df80e = L.circleMarker(\n [42.410941, -71.168458],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e4784e8a3053ad60a1f04e5aba957b5b = L.circleMarker(\n [42.429978, -71.203921],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_0c116df94523ff801139f0aa47e9b453 = L.circleMarker(\n [42.313798, -71.359917],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_3e7e4044b2ebdb6c2c729c59384fb70b = L.circleMarker(\n [42.314504, -71.227365],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_3a25093547bf37a88defc1e38ea089fe = L.circleMarker(\n [42.324682, -71.16198],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_be2c9a0aee3e3ed598d08be5a72f0a7b = L.circleMarker(\n [42.33162, -71.155413],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_caee8fc20f86202bfd181fc3a6ff4a8c = L.circleMarker(\n [42.341017, -71.162549],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_f8b51c1ff99d52db916d8dd2be2b89a0 = L.circleMarker(\n [42.343387, -71.142763],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_330d6833fc4e835d59c9136561872c78 = L.circleMarker(\n [42.349667, -71.146009],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_b5d63bcc1119f895642ec0b9a9af4492 = L.circleMarker(\n [42.350083, -71.146124],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_bef3a06ec5cd037c3adadd93b1258101 = L.circleMarker(\n [42.361942, -71.18542],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_c6913b730c54d93dab0ea25d5c0612a4 = L.circleMarker(\n [42.356842, -71.143863],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2179606d6898751ca3fb0e201d870008 = L.circleMarker(\n [42.363221, -71.128473],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_5fb4298689454e297c11b8714f0569d7 = L.circleMarker(\n [42.352585, -71.131464],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_d8f724f77237b97d77bf7b1ee6677944 = L.circleMarker(\n [42.352999, -71.130896],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e1b475876042a40d35d63266f8b7d5a4 = L.circleMarker(\n [42.351932, -71.124132],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_bb94df080029c87a72e334ff6134f537 = L.circleMarker(\n [42.351083, -71.106096],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_30300d166166e3002bc3f70520135162 = L.circleMarker(\n [42.342619, -71.121734],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e6b87a83831f547e5466a582f95a12cf = L.circleMarker(\n [42.331874, -71.125847],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_116be467f2cb85f4fd92c19b9eed8c38 = L.circleMarker(\n [42.336, -71.112246],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_060ed73196a128a04bcd20e13ff80c07 = L.circleMarker(\n [42.336448, -71.10963],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_684a61b729e8f334b7b85a34b26b17f0 = L.circleMarker(\n [42.332401, -71.100092],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_4563ec8c468b207bf0bc1124d9cd0a64 = L.circleMarker(\n [42.332009, -71.098267],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_0c1e64f443b507956be13885c57dcfe2 = L.circleMarker(\n [42.33047, -71.099348],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2cabf5df19fe1589f27e9d721f19248b = L.circleMarker(\n [42.329829, -71.090904],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_872e35da5b8897cabd2695a71125a6f0 = L.circleMarker(\n [42.339096, -71.093834],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_0d6b7b828859f84179586cf91c5a2353 = L.circleMarker(\n [42.338007, -71.099284],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2240d6e7333b585f5c938c81922ca483 = L.circleMarker(\n [42.341231, -71.094327],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_5ca1b1bb4db88ed9012bc0960471019d = L.circleMarker(\n [42.342001, -71.095003],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_29915202a74be5703f605715e2b614d5 = L.circleMarker(\n [42.344689, -71.096959],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_a943eb79a67d7f5c324e176724c5faf5 = L.circleMarker(\n [42.346361, -71.089677],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_25330e492abda2369f8d8feb24be0878 = L.circleMarker(\n [42.349997, -71.085166],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_7671958875daa44f96d33b47514e6396 = L.circleMarker(\n [42.348977, -71.091358],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_27da9095dadfd720f36b22ea7ee9624f = L.circleMarker(\n [42.34194, -71.083465],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2790078f6236641eb6895047ec0fa94b = L.circleMarker(\n [42.339762, -71.090331],\n {"bubblingMouseEvents": true, "color": "red", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "red", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var poly_line_cbc821d97c31b3d0b6402ccbe04c4a78 = L.polyline(\n [[42.358884, -71.056741], [42.36049, -71.056995], [42.361263, -71.056994], [42.361534, -71.056819], [42.359295, -71.059255], [42.358056, -71.062171], [42.358851, -71.064277], [42.357529, -71.069242], [42.356682, -71.066568], [42.355298, -71.061249], [42.355519, -71.063037], [42.354894, -71.063514], [42.353792, -71.068086], [42.352314, -71.067311], [42.352445, -71.066839], [42.349993, -71.067854], [42.348915, -71.072038], [42.356537, -71.075414], [42.369473, -71.075628], [42.374142, -71.063105], [42.380436, -71.060948], [42.376391, -71.060753], [42.374119, -71.055588], [42.369195, -71.061735], [42.371832, -71.065634], [42.369868, -71.06828], [42.366918, -71.056164], [42.368861, -71.055561], [42.365968, -71.062507], [42.364032, -71.055569], [42.365251, -71.055582], [42.360949, -71.051539], [42.359704, -71.054519], [42.358757, -71.057201], [42.357428, -71.058565], [42.353717, -71.061676], [42.350941, -71.059567], [42.352211, -71.051172], [42.35199, -71.049726], [42.350902, -71.048805], [42.351671, -71.050269], [42.329187, -71.035189], [42.3359, -71.023658], [42.338284, -71.013043], [42.338284, -71.013043], [42.344315, -71.033918], [42.347795, -71.035964], [42.34898, -71.03588], [42.347902, -71.040407], [42.351052, -71.044959], [42.353667, -71.047121], [42.352749, -71.04333], [42.363961, -71.033209], [42.420244, -70.985934], [42.274385, -71.024029], [42.27938, -71.014026], [42.276371, -71.009534], [42.245312, -71.000444], [42.207533, -71.001295], [42.23913, -71.003762], [42.25784, -71.02898], [42.285832, -71.063084], [42.284476, -71.063921], [42.296172, -71.087449], [42.316288, -71.037188], [42.315966, -71.034107], [42.316292, -71.045242], [42.325624, -71.049204], [42.324934, -71.06221], [42.327134, -71.066844], [42.34085, -71.071196], [42.339762, -71.090331]],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "noClip": false, "opacity": 1.0, "smoothFactor": 1.0, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_05b1dcb6afd1950451b2ed2760286777 = L.circleMarker(\n [42.358884, -71.056741],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_f7bcf8fdd83be9e2755d4b959907d4bf = L.circleMarker(\n [42.36049, -71.056995],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_ca9557779bb5bc7cccebcb2824afd372 = L.circleMarker(\n [42.361263, -71.056994],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_22edf88c77f569c189a154f3a3fb3e84 = L.circleMarker(\n [42.361534, -71.056819],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_937304ddf2d4427cb48e1ef901104309 = L.circleMarker(\n [42.359295, -71.059255],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_4f9ad62bfdcf1b6004225659e806201a = L.circleMarker(\n [42.358056, -71.062171],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_019fcc8599183fbfdfef9990fd8de2ff = L.circleMarker(\n [42.358851, -71.064277],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_91f7d5c79452a72ec68f4367716725ff = L.circleMarker(\n [42.357529, -71.069242],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_935a75b1b1d9552b93cab0a2b85f4a95 = L.circleMarker(\n [42.356682, -71.066568],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_5c6ed44f6bec628d6faef3748c3d3e2e = L.circleMarker(\n [42.355298, -71.061249],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_fcb4f3a7e3c03bf78092d2660695474e = L.circleMarker(\n [42.355519, -71.063037],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_918a01ce0281faff2b02ee030a3cc94f = L.circleMarker(\n [42.354894, -71.063514],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_48037ae5d91efe2cb83f3aaed55bd8ef = L.circleMarker(\n [42.353792, -71.068086],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_33b07e80a8dcb81a159af9e87376a566 = L.circleMarker(\n [42.352314, -71.067311],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_5aa230c1769cf267d3e21ac2f14f7ce8 = L.circleMarker(\n [42.352445, -71.066839],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_ce93a4124f4a904c4bcacba408f376ef = L.circleMarker(\n [42.349993, -71.067854],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_5badc7e4fb47dfafed5e464a4db742fd = L.circleMarker(\n [42.348915, -71.072038],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_c4590f3d19a2aedc8d6a9565dac7eb75 = L.circleMarker(\n [42.356537, -71.075414],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_fa8afcc9aef62a835b5fa1015dd52e0d = L.circleMarker(\n [42.369473, -71.075628],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_32a436e773553243ecc0407cd26e8e81 = L.circleMarker(\n [42.374142, -71.063105],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_ecab082bff0fbfd890f51e2322dd51ba = L.circleMarker(\n [42.380436, -71.060948],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_6118d3e410fff93355acbf9edd41d6ad = L.circleMarker(\n [42.376391, -71.060753],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2712c4c29d809381a4beeb9b977d365a = L.circleMarker(\n [42.374119, -71.055588],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_356b8ffd0c3dfb92c2099ba701d1068f = L.circleMarker(\n [42.369195, -71.061735],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e4ec912a92e244f1c910e252700bb469 = L.circleMarker(\n [42.371832, -71.065634],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_8a6c26e779c68696ff8d49ad94a1f93c = L.circleMarker(\n [42.369868, -71.06828],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_92fcc496780e80ec87d3672e57c702dc = L.circleMarker(\n [42.366918, -71.056164],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_84a0fbccb85e6bcdf5fe4e93651b88d5 = L.circleMarker(\n [42.368861, -71.055561],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_0767627b4eb67f92e3a04b14c7ee5b9f = L.circleMarker(\n [42.365968, -71.062507],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_01ad988ae48bb466234ea271fb85c2bf = L.circleMarker(\n [42.364032, -71.055569],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_db68c34e98cae4103a2f9c8aa43c651d = L.circleMarker(\n [42.365251, -71.055582],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e25be872d45a190fd6580e8652883786 = L.circleMarker(\n [42.360949, -71.051539],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2b3b073e8f5ffcdfaef892fcecbf764a = L.circleMarker(\n [42.359704, -71.054519],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_c406d0a229b6ce9ac4dc93fa4df4271b = L.circleMarker(\n [42.358757, -71.057201],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2da118c52d51507739ead7e17782d6ad = L.circleMarker(\n [42.357428, -71.058565],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_f9828c2fa482dff8c852a605d23f0d3a = L.circleMarker(\n [42.353717, -71.061676],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e84bd3699dd8ad4b730c3a04085083bb = L.circleMarker(\n [42.350941, -71.059567],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_d90146eab22364c9769210458c27cbe5 = L.circleMarker(\n [42.352211, -71.051172],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_c62884d5e633e46c32c48f6d0f4fa393 = L.circleMarker(\n [42.35199, -71.049726],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_a1a1a562d33bd7bd7bf0aa771a127cd4 = L.circleMarker(\n [42.350902, -71.048805],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_307e86789de857d064b25d5f8737cb76 = L.circleMarker(\n [42.351671, -71.050269],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_81825b99f148791924fd43b897c31651 = L.circleMarker(\n [42.329187, -71.035189],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_86274750a0a484e579a137a3687a80c5 = L.circleMarker(\n [42.3359, -71.023658],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_7197946d6e5cfad84e373e89236dc39f = L.circleMarker(\n [42.338284, -71.013043],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_57a575364980e8d2275aac7049bc1da0 = L.circleMarker(\n [42.338284, -71.013043],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_06e5c7e147d5fe44e3e3d1b08351bf14 = L.circleMarker(\n [42.344315, -71.033918],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_c52f7b007fbdbc87add14e7f311949f3 = L.circleMarker(\n [42.347795, -71.035964],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_6e67e5ed872e047f85d677138e8a0543 = L.circleMarker(\n [42.34898, -71.03588],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_8312fd2f82b439764f97edabf4545c1d = L.circleMarker(\n [42.347902, -71.040407],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_d419dd26512a5ab838f6340c45dda360 = L.circleMarker(\n [42.351052, -71.044959],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_a2ec1af243bd6d7137dec5951f3ea041 = L.circleMarker(\n [42.353667, -71.047121],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_7036786963612330bd926b52d521911f = L.circleMarker(\n [42.352749, -71.04333],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_399f8043a539c848ecf80c5c156ad71f = L.circleMarker(\n [42.363961, -71.033209],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_3bffd7ec05ff5d3549a2482c78c56a5a = L.circleMarker(\n [42.420244, -70.985934],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2c416fa3f69867108281ca812d4dd575 = L.circleMarker(\n [42.274385, -71.024029],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2398d88974e5ecc68fef6abee715b6ff = L.circleMarker(\n [42.27938, -71.014026],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_fb09bac4f82f905b299ccc96ad251d6b = L.circleMarker(\n [42.276371, -71.009534],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_62e7392f4397e4e5ead79e3a7bd651a8 = L.circleMarker(\n [42.245312, -71.000444],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_1db491c33cf6474e0db8c957ff3e2f2f = L.circleMarker(\n [42.207533, -71.001295],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_1449d6cd9ac07c9d5490343ab61dee07 = L.circleMarker(\n [42.23913, -71.003762],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_2015ecf9e78a45db0849776a8d109393 = L.circleMarker(\n [42.25784, -71.02898],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_ac76ed62e4eff892e29b855b1a53e6ca = L.circleMarker(\n [42.285832, -71.063084],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_e3beb4df874e7f6e60f137875f3c0b1b = L.circleMarker(\n [42.284476, -71.063921],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_c41959503af4dbacf4f18691760f47e8 = L.circleMarker(\n [42.296172, -71.087449],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_39bd2dfcd99ce7248accc0c890e5d1e0 = L.circleMarker(\n [42.316288, -71.037188],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_97887dc437f0849284ec88ef0ba81de6 = L.circleMarker(\n [42.315966, -71.034107],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_81aba71701781b68afef6dbff325287e = L.circleMarker(\n [42.316292, -71.045242],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_c6be17c8f6d3ef50b5f727db8902b98d = L.circleMarker(\n [42.325624, -71.049204],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_930b5a529d6e45eaf463cbaee04c7eba = L.circleMarker(\n [42.324934, -71.06221],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_71bf4e7be23b057b73f132ab263e528a = L.circleMarker(\n [42.327134, -71.066844],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_66c26ab85d1772216287fee3394e78f5 = L.circleMarker(\n [42.34085, -71.071196],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n \n var circle_marker_5eb706e48a76f382fa7dbf824d0f3f7e = L.circleMarker(\n [42.339762, -71.090331],\n {"bubblingMouseEvents": true, "color": "blue", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "blue", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 3, "stroke": true, "weight": 3}\n ).addTo(map_7877700440c5f43aa18c8ede28939731);\n \n</script>\n</html>\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create a map\n",
"m = folium.Map(location=[df['lon'].mean(), df['lat'].mean()], zoom_start=11)\n",
"\n",
"# Add the points and lines for the two routes with different colors\n",
"colors = ['red', 'blue']\n",
"\n",
"for route in df['route'].unique():\n",
" df_route = df[df['route'] == route]\n",
" folium.PolyLine(df_route[['lon', 'lat']].values.tolist(), color=colors[route - 1]).add_to(m)\n",
" for i in range(len(df_route)):\n",
" folium.CircleMarker(df_route[['lon', 'lat']].iloc[i].values.tolist(), radius=3, color=colors[route - 1]).add_to(\n",
" m)\n",
"\n",
"# Display the map\n",
"m"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:08:22.513542Z",
"start_time": "2023-11-07T00:08:22.430363Z"
}
},
"id": "80fd847da2833913"
},
{
"cell_type": "code",
"execution_count": 29,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Route 1 has 61 waypoints\n",
"Route 2 has 70 waypoints\n"
]
}
],
"source": [
"# Get the number of waypoints for each route\n",
"route_1_waypoints = len(route_1_coordinates)\n",
"route_2_waypoints = len(route_2_coordinates)\n",
"print(\"Route 1 has {} waypoints\".format(route_1_waypoints))\n",
"print(\"Route 2 has {} waypoints\".format(route_2_waypoints))"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:08:22.513689Z",
"start_time": "2023-11-07T00:08:22.488854Z"
}
},
"id": "f53c97acec1c2fc4"
},
{
"cell_type": "code",
"execution_count": 30,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The trip will take 10.36111111111111 hours\n",
"The trip will take 10.586666666666666 hours\n"
]
}
],
"source": [
"trip_hrs_1 = utils.get_trip_time(route_1, route_1_waypoints, utils.list_to_string([centroids[0]]),\n",
" northeastern_coordinate)\n",
"print(\"The trip will take {} hours\".format(trip_hrs_1))\n",
"trip_hrs_2 = utils.get_trip_time(route_2, route_2_waypoints, utils.list_to_string([centroids[1]]),\n",
" northeastern_coordinate)\n",
"print(\"The trip will take {} hours\".format(trip_hrs_2))"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:08:24.460727Z",
"start_time": "2023-11-07T00:08:22.491469Z"
}
},
"id": "a3ec09dfb5cbb5b3"
},
{
"cell_type": "code",
"execution_count": 30,
"outputs": [],
"source": [],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-07T00:08:24.471189Z",
"start_time": "2023-11-07T00:08:24.460431Z"
}
},
"id": "eafe5678c44e94fd"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|