Shipping pricing based on distance only/with weight

we should be able to have **diffrent pricing methods** for our shippings apps instead of only two (set price or based on weight) we should have the following methods as well: * based on distance * based on distance and weight just like how all logsitcs companies offer their services