@@ -10,41 +10,42 @@ The arguments should be float type.
10
10
acos(- 1 ) * {{degrees}} / 180
11
11
{%- endmacro %}
12
12
13
- {% macro haversine_distance(lat1,lon1,lat2,lon2,unit= ' mi' ) - %}
13
+ {% macro haversine_distance(lat1, lon1, lat2, lon2, unit= ' mi' ) - %}
14
14
{{ return(adapter .dispatch (' haversine_distance' , packages = dbt_utils ._get_utils_namespaces ())(lat1,lon1,lat2,lon2,unit)) }}
15
15
{% endmacro %}
16
16
17
- {% macro default__haversine_distance(lat1,lon1,lat2,lon2,unit) - %}
18
- {# vanilla macro is in miles #}
19
- {% set conversion_rate = ' ' %}
20
- {% if unit == ' km' %}
21
- {# we multiply miles result to get it in kms #}
22
- {% set conversion_rate = ' * 1.60934' %}
17
+ {% macro default__haversine_distance(lat1, lon1, lat2, lon2, unit= ' mi' ) - %}
18
+ {%- if unit == ' mi' %}
19
+ {% set conversion_rate = 1 %}
20
+ {% elif unit == ' km' %}
21
+ {% set conversion_rate = 1 .60934 %}
22
+ {% else %}
23
+ {{ exceptions .raise_compiler_error (" unit input must be one of 'mi' or 'km'. Got " ~ unit) }}
23
24
{% endif %}
24
25
25
- 2 * 3961 * asin(sqrt(pow((sin(radians(({{lat2}} - {{lat1}}) / 2 ))), 2 ) +
26
+ 2 * 3961 * asin(sqrt(pow((sin(radians(({{ lat2 }} - {{ lat1 }}) / 2 ))), 2 ) +
26
27
cos(radians({{lat1}})) * cos(radians({{lat2}})) *
27
- pow((sin(radians(({{lon2}} - {{lon1}}) / 2 ))), 2 ))) {{ conversion_rate}}
28
+ pow((sin(radians(({{ lon2 }} - {{ lon1 }}) / 2 ))), 2 ))) * {{ conversion_rate }}
28
29
29
30
{%- endmacro %}
30
31
31
32
32
33
33
- {% macro bigquery__haversine_distance(lat1,lon1,lat2,lon2,unit) - %}
34
+ {% macro bigquery__haversine_distance(lat1, lon1, lat2, lon2, unit= ' mi ' ) - %}
34
35
{% set radians_lat1 = dbt_utils .degrees_to_radians (lat1) %}
35
36
{% set radians_lat2 = dbt_utils .degrees_to_radians (lat2) %}
36
37
{% set radians_lon1 = dbt_utils .degrees_to_radians (lon1) %}
37
38
{% set radians_lon2 = dbt_utils .degrees_to_radians (lon2) %}
38
- {# vanilla macro is in miles #}
39
- {% set conversion_rate = ' ' %}
40
- {% if unit == ' km' %}
41
- {# we multiply miles result to get it in kms #}
42
- {% set conversion_rate = ' * 1.60934' %}
39
+ {%- if unit == ' mi' %}
40
+ {% set conversion_rate = 1 %}
41
+ {% elif unit == ' km' %}
42
+ {% set conversion_rate = 1 .60934 %}
43
+ {% else %}
44
+ {{ exceptions .raise_compiler_error (" unit input must be one of 'mi' or 'km'. Got " ~ unit) }}
43
45
{% endif %}
44
-
45
- 2 * 3961 * asin(sqrt(pow(sin(({{radians_lat2}} - {{radians_lat1}}) / 2 ), 2 ) +
46
- cos({{radians_lat1}}) * cos({{radians_lat2}}) *
47
- pow(sin(({{radians_lon2}} - {{radians_lon1}}) / 2 ), 2 ))) {{conversion_rate}}
46
+ 2 * 3961 * asin(sqrt(pow(sin(({{ radians_lat2 }} - {{ radians_lat1 }}) / 2 ), 2 ) +
47
+ cos({{ radians_lat1 }}) * cos({{ radians_lat2 }}) *
48
+ pow(sin(({{ radians_lon2 }} - {{ radians_lon1 }}) / 2 ), 2 ))) * {{ conversion_rate }}
48
49
49
50
{%- endmacro %}
50
51
0 commit comments