gooby 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. data/README +144 -180
  2. data/bin/example_usage.txt +55 -0
  3. data/bin/gooby_been_there.rb +35 -0
  4. data/bin/gooby_config.rb +16 -0
  5. data/bin/gooby_gen_gmap.rb +16 -0
  6. data/bin/gooby_parser.rb +19 -0
  7. data/bin/gooby_splitter.rb +18 -0
  8. data/bin/gooby_version.rb +16 -0
  9. data/bin/run_all.sh +23 -0
  10. data/bin/run_been_there.sh +16 -0
  11. data/bin/run_db_gen.sh +11 -0
  12. data/bin/run_db_load.sh +11 -0
  13. data/bin/run_gen_gmaps.sh +20 -0
  14. data/bin/run_parse.sh +43 -0
  15. data/bin/run_parse_named.sh +19 -0
  16. data/bin/run_split.sh +23 -0
  17. data/config/gooby_config.yaml +137 -0
  18. data/data/20050305_corporate_cup_hm.csv +251 -251
  19. data/data/20050430_nashville_marathon.csv +1208 -1208
  20. data/data/20060115_phoenix_marathon.csv +1280 -1280
  21. data/data/davidson_11m_20070101.csv +251 -0
  22. data/data/davidson_11m_20070101.xml +2020 -0
  23. data/data/davidson_5K_20070505.csv +286 -0
  24. data/data/davidson_5K_20070505.xml +2875 -0
  25. data/lib/gooby.rb +889 -361
  26. data/samples/20050305_corporate_cup_hm.html +270 -270
  27. data/samples/20050430_nashville_marathon.html +1240 -1240
  28. data/samples/20060115_phoenix_marathon.html +1312 -1312
  29. data/samples/been_there.txt +744 -0
  30. data/samples/davidson_11m_20070101.html +432 -0
  31. data/samples/davidson_5K_20070505.html +395 -0
  32. data/sql/gooby.ddl +56 -0
  33. data/sql/gooby_load.dml +35 -0
  34. metadata +30 -32
  35. data/bin/20050305_corporate_cup_hm_to_csv.rb +0 -9
  36. data/bin/20050430_nashville_marathon_to_csv.rb +0 -9
  37. data/bin/20060115_phoenix_marathon_to_csv.rb +0 -9
  38. data/bin/activity_2007_03_10_13_02_32.xml_to_csv.rb +0 -9
  39. data/bin/example_usage.rb +0 -46
  40. data/bin/example_usage.sh +0 -52
  41. data/bin/gen_gap_phx.rb +0 -10
  42. data/bin/gen_gmap_cc_2005.rb +0 -10
  43. data/bin/gen_gmap_cc_2007.rb +0 -10
  44. data/bin/gen_gmap_nashville.rb +0 -10
  45. data/bin/gen_gmap_phx.rb +0 -10
  46. data/bin/phx_to_csv.rb +0 -47
  47. data/bin/split_forerunner_logbook_2007.rb +0 -10
  48. data/bin/split_training_center_2007.rb +0 -8
  49. data/data/2007_03_10.tcx +0 -28445
  50. data/data/activity_2007_03_10_13_02_32.csv +0 -1168
  51. data/data/activity_2007_03_10_13_02_32.xml +0 -11695
  52. data/data/forerunner_2007.xml +0 -31872
  53. data/data/geo_data.txt +0 -171
  54. data/pkg/code_header.txt +0 -21
  55. data/pkg/pkg.rb +0 -238
  56. data/pkg/test_header.txt +0 -19
  57. data/samples/20070310_corporate_cup_hm.html +0 -1367
  58. data/samples/gps_point_capture.html +0 -54
  59. data/samples/phoenix_marathon.html +0 -1596
  60. data/tests/ts_gooby.rb +0 -1109
  61. data/tests/ts_gooby_min.rb +0 -550
@@ -0,0 +1,35 @@
1
+
2
+ # The following prefixes ../lib to the active ruby load path
3
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
4
+
5
+ # Example usage:
6
+ # ruby bin/gooby_been_there.rb > been_there.txt
7
+
8
+ require 'rubygems'
9
+ require 'gooby'
10
+ include REXML
11
+
12
+ config_filename = '/devtools/workspace/RF_Gooby/config/gooby_config.yaml'
13
+
14
+ gooby = Gooby::GoobyCommand.new(config_filename)
15
+
16
+ # first read the csv file(s) parsed from your Garmin export tcx/xml files.
17
+ csv_list = Array.new
18
+ csv_list << "/devtools/workspace/RF_Gooby/data/2007_g201.csv" # csv file produced from Garmin 201
19
+ csv_list << "/devtools/workspace/RF_Gooby/data/2007_g205.csv" # csv file produced from Garmin 205
20
+
21
+ # read_csv_files has an optional second arg to display the specified formatted record number (i.e. - (csv_list,3) ).
22
+ gooby.read_csv_files(csv_list, 3)
23
+
24
+ gooby.been_there('333', 0.0025) # course 333 doesn't exist
25
+
26
+ # first arg to 'been_there' is the course number, second arg is the 'proximity' specified as
27
+ # 'degrees difference'. Degrees difference is defined as the absolute value of lat1 - lat2,
28
+ # plus the absolute value of lng1 - lng2. Your courses and points of interest (poi) are defined
29
+ # in the yaml file.
30
+
31
+ gooby.been_there('1', 0.0025)
32
+ gooby.been_there('2', 0.0025)
33
+ gooby.been_there('3', 0.0025)
34
+ gooby.been_there('4', 0.0025)
35
+ gooby.been_there('10', 0.0025)
@@ -0,0 +1,16 @@
1
+
2
+ # The following prefixes ../lib to the active ruby load path
3
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
4
+
5
+ require 'rubygems'
6
+ require 'gooby'
7
+ include REXML
8
+
9
+ config_filename = '/devtools/workspace/RF_Gooby/config/gooby_config.yaml'
10
+
11
+ gooby = Gooby::GoobyCommand.new(config_filename)
12
+ puts gooby.configuration.to_s
13
+ puts gooby.configuration.get_poi('1')
14
+ gooby.configuration.get_course('2').dump
15
+
16
+
@@ -0,0 +1,16 @@
1
+
2
+ # The following prefixes ../lib to the active ruby load path
3
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
4
+
5
+ # Example usage:
6
+ # ruby bin/gooby_gen_gmap.rb data/20070505_Davidson_5K.csv > samples/20070505_Davidson_5K.html
7
+
8
+ require 'rubygems'
9
+ require 'gooby'
10
+ include REXML
11
+
12
+ config_filename = '/devtools/workspace/RF_Gooby/config/gooby_config.yaml'
13
+
14
+ gooby = Gooby::GoobyCommand.new(config_filename)
15
+ gooby.generate_google_map(ARGV)
16
+
@@ -0,0 +1,19 @@
1
+
2
+ # The following prefixes ../lib to the active ruby load path
3
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
4
+
5
+ # Example usage:
6
+ # ruby bin/gooby_parser.rb garmin205 data/activity_2007_05_05_12_28_32.xml > data/20070505_Davidson_5K.csv
7
+ # ruby bin/gooby_parser.rb garmin205 data/raw/20070609.tcx > data/2007.csv
8
+ # ruby bin/gooby_parser.rb garmin201 data/raw/forerunner_2007.xml > data/2007f.csv
9
+
10
+ require 'rubygems'
11
+ require 'gooby'
12
+ include REXML
13
+
14
+ config_filename = '/devtools/workspace/RF_Gooby/config/gooby_config.yaml'
15
+
16
+ gooby = Gooby::GoobyCommand.new(config_filename)
17
+ gooby.parse_garmin_xml_file(ARGV)
18
+
19
+
@@ -0,0 +1,18 @@
1
+
2
+ # The following prefixes ../lib to the active ruby load path
3
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
4
+
5
+ # Example usage:
6
+ # ruby bin/gooby_splitter.rb garmin205 data/raw/20070609.tcx /temp/splits
7
+ # ruby bin/gooby_splitter.rb garmin201 data/raw/forerunner_2007.xml > /temp/splits
8
+
9
+ require 'rubygems'
10
+ require 'gooby'
11
+ include REXML
12
+
13
+ config_filename = '/devtools/workspace/RF_Gooby/config/gooby_config.yaml'
14
+
15
+ gooby = Gooby::GoobyCommand.new(config_filename)
16
+ gooby.display_version
17
+ gooby.split_garmin_export_file(ARGV)
18
+
@@ -0,0 +1,16 @@
1
+
2
+ # The following prefixes ../lib to the active ruby load path
3
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
4
+
5
+ # Example usage:
6
+ # ruby bin/gooby_version.rb
7
+
8
+ require 'rubygems'
9
+ require 'gooby'
10
+ include REXML
11
+
12
+ config_filename = '/devtools/workspace/RF_Gooby/config/gooby_config.yaml'
13
+
14
+ gooby = Gooby::GoobyCommand.new(config_filename)
15
+ gooby.display_version
16
+
data/bin/run_all.sh ADDED
@@ -0,0 +1,23 @@
1
+
2
+ # ============================================================================
3
+ # Gooby - Copyright 2007 by Chris Joakim.
4
+ # Gooby is available under GNU General Public License (GPL) license.
5
+ # 2007/06/10
6
+ #
7
+ # This shell script is used to execute all of the Gooby scripts in their
8
+ # propper sequence. It generates the appropriate files for the gem
9
+ # distribution file, as well as provides an example for Gooby users.
10
+ # ============================================================================
11
+
12
+ /devtools/workspace/RF_Gooby/bin/run_split.sh
13
+
14
+ /devtools/workspace/RF_Gooby/bin/run_parse.sh
15
+
16
+ /devtools/workspace/RF_Gooby/bin/run_been_there.sh
17
+
18
+ /devtools/workspace/RF_Gooby/bin/run_gen_gmaps.sh
19
+
20
+ /devtools/workspace/RF_Gooby/bin/run_db_gen.sh
21
+ /devtools/workspace/RF_Gooby/bin/run_db_load.sh
22
+
23
+ echo all done
@@ -0,0 +1,16 @@
1
+
2
+ # ============================================================================
3
+ # Gooby - Copyright 2007 by Chris Joakim.
4
+ # Gooby is available under GNU General Public License (GPL) license.
5
+ # 2007/06/10
6
+ #
7
+ # This shell script is used to execute Gooby 'proximity' logic to determine
8
+ # if you've been on specified course(s) before. The courses and points along
9
+ # the courses are defined in the yaml file as 'course.x' and 'poi.x'
10
+ # entries.
11
+ # ============================================================================
12
+
13
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_been_there.rb > /devtools/workspace/RF_Gooby/samples/been_there.txt
14
+
15
+ echo done
16
+
data/bin/run_db_gen.sh ADDED
@@ -0,0 +1,11 @@
1
+
2
+ # ============================================================================
3
+ # Gooby - Copyright 2007 by Chris Joakim.
4
+ # Gooby is available under GNU General Public License (GPL) license.
5
+ # 2007/06/10
6
+ #
7
+ # This shell script is used to delete/define the optional MySQL database for
8
+ # Gooby gps_data.
9
+ # ============================================================================
10
+
11
+ /usr/local/mysql/bin/mysql < /devtools/workspace/RF_Gooby/sql/gooby.ddl -u root -p
@@ -0,0 +1,11 @@
1
+
2
+ # ============================================================================
3
+ # Gooby - Copyright 2007 by Chris Joakim.
4
+ # Gooby is available under GNU General Public License (GPL) license.
5
+ # 2007/06/10
6
+ #
7
+ # This shell script is used to load the optional MySQL database for
8
+ # Gooby gps_data with a parsed csv file.
9
+ # ============================================================================
10
+
11
+ /usr/local/mysql/bin/mysql < /devtools/workspace/RF_Gooby/sql/gooby_load.dml -u root -p
@@ -0,0 +1,20 @@
1
+
2
+ # ============================================================================
3
+ # Gooby - Copyright 2007 by Chris Joakim.
4
+ # Gooby is available under GNU General Public License (GPL) license.
5
+ # 2007/06/10
6
+ #
7
+ # This shell script is used to split generate Google Maps from your CVS data
8
+ # previously parsed by Gooby (see 'run_parse.sh').
9
+ # ============================================================================
10
+
11
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_gen_gmap.rb /devtools/workspace/RF_Gooby/data/20050305_corporate_cup_hm.csv > /devtools/workspace/RF_Gooby/samples/20050305_corporate_cup_hm.html
12
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_gen_gmap.rb /devtools/workspace/RF_Gooby/data/20050430_nashville_marathon.csv > /devtools/workspace/RF_Gooby/samples/20050430_nashville_marathon.html
13
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_gen_gmap.rb /devtools/workspace/RF_Gooby/data/20060115_phoenix_marathon.csv > /devtools/workspace/RF_Gooby/samples/20060115_phoenix_marathon.html
14
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_gen_gmap.rb /devtools/workspace/RF_Gooby/data/davidson_11m_20070101.csv > /devtools/workspace/RF_Gooby/samples/davidson_11m_20070101.html
15
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_gen_gmap.rb /devtools/workspace/RF_Gooby/data/davidson_5K_20070505.csv > /devtools/workspace/RF_Gooby/samples/davidson_5K_20070505.html
16
+
17
+ ls -al /devtools/workspace/RF_Gooby/samples/
18
+
19
+ echo done
20
+
data/bin/run_parse.sh ADDED
@@ -0,0 +1,43 @@
1
+
2
+ # ============================================================================
3
+ # Gooby - Copyright 2007 by Chris Joakim.
4
+ # Gooby is available under GNU General Public License (GPL) license.
5
+ # 2007/06/10
6
+ #
7
+ # This shell script is used to parse both the Forerunner 201 and 205 files
8
+ # exported from Garmin software.
9
+ # ============================================================================
10
+
11
+ # Parsing of the Garmin Forerunner 201 file.
12
+
13
+ echo wc /devtools/workspace/RF_Gooby/data/raw/forerunner_201_2007.xml ...
14
+ wc /devtools/workspace/RF_Gooby/data/raw/forerunner_201_2007.xml
15
+
16
+ echo parsing the forerunner 201 xml file...
17
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin201 /devtools/workspace/RF_Gooby/data/raw/forerunner_201_2007.xml > /devtools/workspace/RF_Gooby/data/2007_g201.csv
18
+
19
+ echo wc /devtools/workspace/RF_Gooby/data/2007_g201.csv
20
+ wc /devtools/workspace/RF_Gooby/data/2007_g201.csv
21
+
22
+
23
+ # Parsing of the Garmin Forerunner 205 file.
24
+
25
+ echo wc /devtools/workspace/RF_Gooby/data/raw/forerunner_205_2007.tcx ...
26
+ wc /devtools/workspace/RF_Gooby/data/raw/forerunner_205_2007.tcx
27
+
28
+ echo parsing the forerunner 205 xml file...
29
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin205 /devtools/workspace/RF_Gooby/data/raw/forerunner_205_2007.tcx > /devtools/workspace/RF_Gooby/data/2007_g205.csv
30
+
31
+ echo wc /devtools/workspace/RF_Gooby/data/2007_g205.csv
32
+ wc /devtools/workspace/RF_Gooby/data/2007_g205.csv
33
+
34
+
35
+ # Parsing of previously 'split" Garmin Forerunner 201 and 205 files (see 'run_split.sh').
36
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin201 /devtools/workspace/RF_Gooby/data/20050305_corporate_cup_hm.xml > /devtools/workspace/RF_Gooby/data/20050305_corporate_cup_hm.csv
37
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin201 /devtools/workspace/RF_Gooby/data/20050430_nashville_marathon.xml > /devtools/workspace/RF_Gooby/data/20050430_nashville_marathon.csv
38
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin201 /devtools/workspace/RF_Gooby/data/20060115_phoenix_marathon.xml > /devtools/workspace/RF_Gooby/data/20060115_phoenix_marathon.csv
39
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin201 /devtools/workspace/RF_Gooby/data/davidson_11m_20070101.xml > /devtools/workspace/RF_Gooby/data/davidson_11m_20070101.csv
40
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin205 /devtools/workspace/RF_Gooby/data/davidson_5K_20070505.xml > /devtools/workspace/RF_Gooby/data/davidson_5K_20070505.csv
41
+
42
+ echo done
43
+
@@ -0,0 +1,19 @@
1
+
2
+ # ============================================================================
3
+ # Gooby - Copyright 2007 by Chris Joakim.
4
+ # Gooby is available under GNU General Public License (GPL) license.
5
+ # 2007/06/10
6
+ #
7
+ # This shell script is used to parse both the Forerunner 201 and 205 files
8
+ # exported from Garmin software.
9
+ # ============================================================================
10
+
11
+ # Parsing of previously 'split" Garmin Forerunner 201 and 205 files (see 'run_split.sh').
12
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin201 /devtools/workspace/RF_Gooby/data/20050305_corporate_cup_hm.xml > /devtools/workspace/RF_Gooby/data/20050305_corporate_cup_hm.csv
13
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin201 /devtools/workspace/RF_Gooby/data/20050430_nashville_marathon.xml > /devtools/workspace/RF_Gooby/data/20050430_nashville_marathon.csv
14
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin201 /devtools/workspace/RF_Gooby/data/20060115_phoenix_marathon.xml > /devtools/workspace/RF_Gooby/data/20060115_phoenix_marathon.csv
15
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin201 /devtools/workspace/RF_Gooby/data/davidson_11m_20070101.xml > /devtools/workspace/RF_Gooby/data/davidson_11m_20070101.csv
16
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_parser.rb garmin205 /devtools/workspace/RF_Gooby/data/davidson_5K_20070505.xml > /devtools/workspace/RF_Gooby/data/davidson_5K_20070505.csv
17
+
18
+ echo done
19
+
data/bin/run_split.sh ADDED
@@ -0,0 +1,23 @@
1
+
2
+ # ============================================================================
3
+ # Gooby - Copyright 2007 by Chris Joakim.
4
+ # Gooby is available under GNU General Public License (GPL) license.
5
+ # 2007/06/10
6
+ #
7
+ # This shell script is used to split both the Forerunner 201 and 205 files,
8
+ # exported from Garmin software, into individual run xml files.
9
+ # ============================================================================
10
+
11
+ rm /temp/splits/*.*
12
+
13
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_splitter.rb garmin201 /devtools/workspace/RF_Gooby/data/raw/forerunner_201_2007.xml /temp/splits
14
+
15
+ ruby /devtools/workspace/RF_Gooby/bin/gooby_splitter.rb garmin205 /devtools/workspace/RF_Gooby/data/raw/forerunner_205_2007.tcx /temp/splits
16
+
17
+ ls -al /temp/splits
18
+
19
+ cp /temp/splits/run_2007_01_01_16_38_27.xml /devtools/workspace/RF_Gooby/data/davidson_11m_20070101.xml
20
+ cp /temp/splits/activity_2007_05_05_12_28_32.xml /devtools/workspace/RF_Gooby/data/davidson_5K_20070505.xml
21
+
22
+ echo done
23
+
@@ -0,0 +1,137 @@
1
+ ---
2
+ "csv_dttm_idx": 1
3
+ "csv_num_idx": 4
4
+ "csv_lat_idx": 5
5
+ "csv_lng_idx": 6
6
+ "csv_alt_idx": 7
7
+ "csv_cdist_idx": 8
8
+ "gmap_approx_max_points": 200
9
+ "gmap_first_tkpt_number": 1
10
+ "gmap_gen_comments": true
11
+ "gmap_height": 600px
12
+ "gmap_icon_url_base": http://www.joakim-systems.com/gicons/
13
+ "gmap_key": ABQIAAAAdn5SVzjZKZKs1IRkFdx52xR1l5lLpU9GCFYoS8YrTf8v3gVJ2hRLV1dTSiqDWwWSnMRkM7SVr0EKSA
14
+ "gmap_key_joakim_software_gmap": ABQIAAAAdn5SVzjZKZKs1IRkFdx52xQg0TO_bCqGOTsRH2RbuhBZnI0wvRQW0Q92mw1taN1NJCk2cxlQQutfuA
15
+ "gmap_key_joakim_systems_gmaps": ABQIAAAAdn5SVzjZKZKs1IRkFdx52xR1l5lLpU9GCFYoS8YrTf8v3gVJ2hRLV1dTSiqDWwWSnMRkM7SVr0EKSA
16
+ "gmap_last_tkpt_number": 5000
17
+ "gmap_map_element_id": map
18
+ "gmap_size_control": large
19
+ "gmap_type": normal
20
+ "gmap_type_control": true
21
+ "gmap_width": 900px
22
+ "gmap_zoom_level": 12
23
+ "gmap_zoom_tab": true
24
+ "/devtools/workspace/RF_Gooby/data/20050305_corporate_cup_hm.csv": 2005/03/05 Charlotte Corporate Cup Half Marathon
25
+ "/devtools/workspace/RF_Gooby/data/20050430_nashville_marathon.csv": 2005/04/30 Nashville Marathon
26
+ "/devtools/workspace/RF_Gooby/data/20060115_phoenix_marathon.csv": 2006/01/15 Phoenix Marathon
27
+ "/devtools/workspace/RF_Gooby/data/davidson_11m_20070101.csv": 2007/01/01 Davidson Training Run 11-miler
28
+ "/devtools/workspace/RF_Gooby/data/davidson_5K_20070505.csv": 2007/05/05 Davidson Town Day 5K
29
+ "course.1": To the Summit,1.3,1,2,4
30
+ "course.2": Royal Court Dr,5,3
31
+ "course.3": Summit,0.0,6
32
+ "course.4": Royal Court,0.0,3,111
33
+ "course.10": White Horse Valley,1.25,24,25,26
34
+ "poi.1": 35.49547 -80.83215 Home at South Faulkner Way Stopsign
35
+ "poi.2": 35.49246410935417 -80.8334487676620 St. Albans Ln at Concord Rd
36
+ "poi.3": 35.46713857814417 -80.78518778085709 17240 Royal Court Dr
37
+ "poi.4": 35.4992424404918 -80.84839940071106 Downtown Davidson
38
+ "poi.5": 35.500587556752365 -80.8493971824646 Inbound Bus Stop on Jackson St
39
+ "poi.6": 35.49815934349614 -80.84902167320251 Summit Coffee House
40
+ "poi.7": 35.49404300497254 -80.86026549339294 Cornelius YMCA
41
+ "poi.10": 35.494097599701725 -80.83323419094086 Caldwell Ln at Twain Ave
42
+ "poi.11": 35.493324534879854 -80.83260118961334 St. Albans Ln at Caldwell Ln
43
+ "poi.12": 35.49246410935417 -80.8334487676620 St. Albans Ln at Concord Rd
44
+ "poi.20": 35.49764181013854 -80.8336392045021 Gray Rd at Wolfe St
45
+ "poi.24": 35.50015956765822 -80.81525802612305 Gray Rd at Charden Rd
46
+ "poi.25": 35.504661 -80.810150 Gray Rd at White Horse
47
+ "poi.26": 35.50734773503018 -80.79724431037903 Gray Rd at Shearers Rd
48
+ "poi.30": 35.49731643935862 -80.83175897598267 Conroy Ave at Wolfe St
49
+ "poi.31": 35.496591447377874 -80.83210229873657 Conroy Ave at Harper Lee St
50
+ "poi.32": 35.49592759356077 -80.83266019821167 Conroy Ave at North Faulkner Way
51
+ "poi.33": 35.495713586884705 -80.83282113075256 Conroy Ave at South Faulkner Way
52
+ "poi.34": 35.49461733966593 -80.83401203155518 Conroy Ave at Caldwell Ln
53
+ "poi.35": 35.496571793889714 -80.82844913005829 NE Corner of Ohenry Ave
54
+ "poi.36": 35.495759445506124 -80.82826405763626 Ohenry Ave at Harper Lee St
55
+ "poi.37": 35.49444482131112 -80.82820773124695 Ohenry at North Faulkner Way
56
+ "poi.50": 35.49478330634122 -80.82960516214371 North Faulkner Way at Fairview Drive
57
+ "poi.51": 35.494036453602554 -80.83004236221313 Fairview Drive at Ashby Dr
58
+ "poi.52": 35.492523072818805 -80.83124130964279 Caldwell Ln at Fairview Drive
59
+ "poi.52": 35.49171286735068 -80.83214521408081 Concord Rd at Fairview Drive
60
+ "poi.54": 35.49225227729099 -80.8332046866417 Concord Rd at Pat Stough Ln Pole
61
+ "poi.60": 35.492885587983785 -80.8265420794487 Ashby Dr at Ashby Dr
62
+ "poi.61": 35.49245100635615 -80.82489788532257 Ashby Dr at Chambers St
63
+ "poi.62": 35.49125644072662 -80.8253726363182 Meredith and Paul
64
+ "poi.63": 35.4900422022521 -80.82411736249924 Ashby Dr at Lake Trail
65
+ "poi.64": 35.48874277204962 -80.82409054040909 Morrison Hill at Lake Trail
66
+ "poi.65": 35.4893127767927 -80.82720994949341 Morrison Hill at N Kimberly Rd
67
+ "poi.66": 35.489288753685905 -80.82465916872025 Middle of McConnel Lake
68
+ "poi.67": 35.490917940838195 -80.82762837409973 N Kimberly Rd at McConnell Dr
69
+ "poi.68": 35.49161677775054 -80.82781076431274 N Kimberly Rd at N Downing St
70
+ "poi.69": 35.491765279811396 -80.82698732614517 Ashby Dr at N Downing St
71
+ "poi.70": 35.491057708706904 -80.82678884267807 Ashby Dr at McConnell Dr
72
+ "poi.80": 35.49588391877521 -80.83266019821167 Faulkner Sq. Park - NW Corner
73
+ "poi.81": 35.495169832663805 -80.83069682121277 Faulkner Sq. Park - NE Corner
74
+ "poi.82": 35.49501478560521 -80.83078265190125 Faulkner Sq. Park - SE Corner
75
+ "poi.83": 35.4957310568388 -80.83276212215424 Faulkner Sq. Park - SW Corner
76
+ "poi.84": 35.48882357756566 -80.82754790782928 North/South Kimberly Rd at Concord Rd
77
+ "poi.85": 35.48490114038599 -80.82898825407028 South Kimberly Rd at Hudson Pl
78
+ "poi.86": 35.48757435888456 -80.82566499710083 West end of Greenway Trail on Concord Rd
79
+ "poi.90": 35.48415856391174 -80.82033276557922 Greenway Trail at pole at corner of Concord Rd and Davidson-Concord Rd
80
+ "poi.100": 35.48141752370175 -80.82014501094818 Davidson-Concord Rd at Westmoreland Farm Rd
81
+ "poi.101": 35.48214483670891 -80.82406103610992 End of Westmoreland Farm Rd
82
+ "poi.110": 35.47805388846776 -80.81931084394455 End of Greenway at Robert Walker Dr
83
+ "poi.111": 35.47795122985448 -80.8196085691452 Robert Walker Dr at Concord Rd
84
+ "poi.112": 35.47470321838373 -80.80712556838989 Robert Walker Dr at River Crossing Blvd
85
+ "poi.113": 35.46859345593708 -80.81401348114014 Top of River Crossing Blvd hill
86
+ "poi.120": 35.47085436243515 -80.81011086702347 River Falls Dr at River Crossing Blvd
87
+ "poi.121": 35.46740945828581 -80.80724358558655 River Falls Dr at River Ford Dr
88
+ "poi.122": 35.46560066069102 -80.80374330282211 River Falls Dr at Clubhouse
89
+ "poi.123": 35.46510476342402 -80.7984271645546 River Falls Dr at Wildcat Dr
90
+ "poi.124": 35.46919855501691 -80.79529702663422 End of Wildcat Dr
91
+ "poi.125": 35.46776990222079 -80.79330146312714 River Falls Dr at 12th Hole path Tigerlilly
92
+ "poi.126": 35.46694852459695 -80.79146414995193 River Ford Dr at 12th Hole path
93
+ "poi.130": 35.46421345139867 -80.81106573343277 Davidson-Concord Rd at Parting Oaks Lane - River Run Entrance
94
+ "poi.131": 35.46479892217552 -80.81033885478973 Mid Parting Oaks Lane
95
+ "poi.132": 35.46511568630424 -80.80902189016342 River Ford Dr at Parting Oaks
96
+ "poi.140": 35.462114023013804 -80.80345630645752 River Ford Dr at Gazebo on Lake
97
+ "poi.150": 35.46990413411456 -80.7900989055633 River Ford Dr at Greyton La
98
+ "poi.151": 35.471483472938324 -80.79014450311661 River Ford Dr at Dembridge Dr
99
+ "poi.152": 35.46967476697559 -80.78843593597412 Tennis Center at Greyton La
100
+ "poi.153": 35.46942355459652 -80.7845064997673 Greyton La at Dembridge Dr
101
+ "poi.160": 35.46836626954736 -80.78357577323914 Dembridge Dr at Royal Court Dr
102
+ "poi.161": 35.46713857814417 -80.78518778085709 17240 Royal Court Dr
103
+ "poi.162": 35.46704682821191 -80.78516900539398 Royal Court Dr at Center Court Dr
104
+ "poi.163": 35.46627787228416 -80.78329145908356 Dembridge Dr at Center Court Dr
105
+ "poi.164": 35.463455391486946 -80.779227912426 Dembridge Dr at South Shearer Rd
106
+ "poi.170": 35.47143323165537 -80.78723698854446 Dembridge Dr at Winged Oak
107
+ "poi.171": 35.472379073149675 -80.78729063272476 Dembridge Dr at East Rocky River Rd
108
+ "poi.172": 35.47343193673893 -80.78515559434891 East Rocky River Rd at Shearer Rd
109
+ "poi.180": 35.479008388872735 -80.78656107187271 Shearer Rd at Lecheval La
110
+ "poi.181": 35.49493835384652 -80.79602926969528 Shearer Rd at Fisher Farm
111
+ "poi.190": 35.50735210188649 -80.7972791790962 Shearer Rd at Gray Rd
112
+ "poi.191": 35.50468827542437 -80.80991506576538 Gray Rd at White Horse
113
+ "poi.192": 35.50012681329686 -80.81527411937714 Gray Rd at Charden
114
+ "poi.193": 35.49930139898172 -80.8323436975479 Gray Rd at Davidson Trails Entrance
115
+ "poi.200": 35.4938006039269 -80.83570718765259 Concord Rd at Crescent Rd
116
+ "poi.201": 35.49528557182234 -80.83909749984741 Concord Rd at Gray Rd
117
+ "poi.202": 35.495923226083285 -80.84135055541992 Concord Rd at Thompson Rd
118
+ "poi.203": 35.49739941995118 -80.84346413612366 Concord Rd at Baker Dr
119
+ "poi.204": 35.49836897631244 -80.84471940994263 Concord Rd at Faculty Dr
120
+ "poi.205": 35.4992424404918 -80.84839940071106 Downtown Davidson - Rt 115 at Concord Rd
121
+ "poi.206": 35.50009842617289 -80.84813117980957 Rt 115 at Depot Street
122
+ "poi.207": 35.500482743307515 -80.84938645362854 Jackson St at Depot Street
123
+ "poi.208": 35.500587556752365 -80.8493971824646 Inbound Bus Stop on Jackson St
124
+ "poi.209": 35.49815934349614 -80.84902167320251 Summit Coffee House
125
+ "poi.210": 35.49751952328859 -80.84938913583755 Exxon Station Vending Machine
126
+ "poi.211": 35.49794534276524 -80.84902167320251 Rt 115 at South Street
127
+ "poi.212": 35.492782948313916 -80.85593104362488 Davidson/Cornelius Town Line at Rt 115 Trestle
128
+ "poi.213": 35.49270869825821 -80.8564218878746 Rt 115 at Potts
129
+ "poi.214": 35.492483763847176 -80.8570870757103 Rt 115 at Cornelius YMCA Entrance
130
+ "poi.220": 35.49881444423064 -80.84398984909058 Faculty Dr at Sidewalk to Track
131
+ "poi.221": 35.499620210807194 -80.84352046251297 Entrance to Davidson College Track
132
+ "poi.222": 35.50026001428307 -80.84262996912003 North End of Davidson College Track
133
+ "poi.223": 35.498796974947055 -80.84306180477142 South End of Davidson College Track
134
+ "poi.224": 35.49950229425207 -80.8416536450386 Baker Dr at Wildcat Statue
135
+ "poi.230": 35.49404300497254 -80.86026549339294 Cornelius YMCA
136
+ "poi.231": 35.494722160763885 -80.86207866668701 Cornelius YMCA "Beach"
137
+ "poi.232": 35.49358659158504 -80.860455930233 Cornelius YMCA Path Base