gooby 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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