[php]
/*
Plugin Name: Distance
Plugin URI: http://bokeconsulting.com/programming/plugins/distance/
Description: Calculates distance between two map coordinates.
Version: 0.1
Author: Bruce Duggan
Author URI: http://bokeconsulting.com
Copyright: Bruce Duggan 2014
Acknowledgement:
The code used in this plugin is based on Martin Stoeckli's code
found at http://stackoverflow.com/users/575765/martinstoeckli,
who in turn based his code on the Vincenty formula.
License: GPL
This program is free software: you can redistribute it and/or modify
it under the terms of the latest version of the GNU General Public License
as published by the Free Software Foundation. It is distributed in the hope
that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
add_shortcode('distance','distance_func');
function distance_func($atts){
extract( shortcode_atts(array(
'vals' => '0',
), $atts ) );
$coordinates = explode(',', $vals);
$latitudeFrom = $coordinates[0];
$latitudeTo = $coordinates[1];
$longitudeFrom = $coordinates[2];
$longitudeTo = $coordinates[3];
$earthRadius = 6371;
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
$lonDelta = $lonTo - $lonFrom;
$a = pow(cos($latTo) * sin($lonDelta), 2) + pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
$b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);
$angle = atan2(sqrt($a), $b);
$distance = $angle * $earthRadius;
$rounded = round($distance,-1);
$roundedMore = round($distance,-2);
$roundedMost = round($distance,-3);
$roundedLess = round($distance);
if ( is_user_logged_in() ) {
if ($distance > 1900) {
return number_format($roundedMost);
} elseif ($distance > 190) {
return number_format($roundedMore);
} elseif ($distance > 19) {
return number_format($rounded);
} else {
return number_format($roundedLess);
}
}
}
/*End Of File*/
[/php]
[text-blocks id="table-section-line"]
|
product |
amount |
|
form |
location |
distance |
price |
buy |
▲ |
Biomass 4" natural |
500 |
tons |
grindings |
Canada ⋅ MB |
[distance vals="49.60345921558976,,-96.6868579565562,"] |
Can$25 |
/ tonne |
|
|
Details |
|
source material: |
wood - manufacturing residue |
|
|
|
primary uses: |
fuel for heat |
|
secondary uses: |
|
|
|
|
not suitable for: |
livestock bedding |
|
|
|
Does seller deliver? |
yes |
|
Is delivery included in price? |
no |
|
|
|
Augerable? |
perhaps |
|
|
|
Storable? |
yes - medium term OK |
|
|
|
calorific value: |
|
|
|
|
moisture content: |
min: 15% avg: 20% max: 30% |
|
|
|
ash residue: |
|
|
|
|
note to potential buyer: |
We are a sawmill that is grinding our by-product into mulch or biomass fuel. Wood is 95% Pine with 5% Aspen. We grind our waste to 4" size and store in outside bunker. |
|
|
[text-blocks id="table-section-line"]
Don't see the biomass you need at the price you want? Sign In or Join and add a want-to-buy listing.
[text-blocks id=fine-print-trade-show]