zones de transport pour cout de livraison selon CP

Bonjour,
Je vends des gros produits (container maritime) et je mets en place la commande par Internet.
Mon problème : le calcul des coûts de livraison.
Mon transporteur m’a donné une carte en radius à partir de chez lui/le point de départ du container, par rayon de 20 km (Zone1 : 0-20, Z2: 20-40, etc)

Il faut donc que je classe tous les codes postaux dans chaque zone pour qu’ensuite je puisse interroger cette liste pour donner le prix

Question : connaissez-vous une solution qui me permette de faire ça ? au moins juste le classement dans les zones (autre que Smappen mais payante)

merci

Si la distance qui t’intéresse est à vol d’oiseau, tu peux utiliser les coordonnées GPS de ton transporteur et y appliquer une petite formule de maths pour calculer la distance avec un autre point (le destinataire).

function haversine_distance(mk1, mk2) {
      var R = 3958.8; // Radius of the Earth in miles
      var rlat1 = mk1.position.lat() * (Math.PI/180); // Convert degrees to radians
      var rlat2 = mk2.position.lat() * (Math.PI/180); // Convert degrees to radians
      var difflat = rlat2-rlat1; // Radian difference (latitudes)
      var difflon = (mk2.position.lng()-mk1.position.lng()) * (Math.PI/180); // Radian difference (longitudes)

      var d = 2 * R * Math.asin(Math.sqrt(Math.sin(difflat/2)*Math.sin(difflat/2)+Math.cos(rlat1)*Math.cos(rlat2)*Math.sin(difflon/2)*Math.sin(difflon/2)));
      return d;
    }

Il faut juste changer le rayon de la terre avec la valeur en km pour avoir un résultat en km :

R = 6371.0710

Attention avec les codes postaux, à voir avec le transporteur car une ville peut surement être à cheval entre 2 zones.
Sauf si tu as un gros volume à traiter (et encore…) j’appliquerais la formule au cas par cas, sur l’adresse du destinataire, géocodée.

OMG c’est bien au-dessus de mes capacités :frowning:

Idéalement il faudrait comprendre quel est ton process pour y intégrer une solution simple qui fasse ce calcul automatiquement.
Je pense qu’il ne doit pas être très complexe de transposer cette formule dans un Gsheet (exemple avec Excel) et/ou d’utiliser un outil no-code (pas ce que je maitrise le mieux par contre) pour arriver à tes fins.