2010-03-16 15 views
1

J'ai besoin d'écrire une application qui doit calculer la distance de conduite estimée entre deux adresses au Royaume-Uni; Je pense que je peux utiliser Google comme suit:trouver la distance entre deux adresses au Royaume-Uni

http://maps.google.com/maps/nav?q=from:London%20to:Dover

Cependant, tout le monde sait ce qui est la limite quotidienne/mensuelle de la base de données à partir d'interroger une adresse IP unique?

Je dois mettre en œuvre dans une application commerciale (services de fret), existe-t-il une alternative fiable? Je peux dépenser de l'argent; mais quelques';

Langage de développement/plate-forme: C#, .NET

Cordialement,

Répondre

0

J'ai résolu le problème en utilisant Google Maps et j'ai écrit l'API personnalisée en utilisant Newtonsoft JSON.

Je n'ai pas encore posté de solution n'importe où sur le blog (je le ferai bientôt).

Si quelqu'un est intéressé par un code, veuillez me contacter.

+0

Avez-vous publié ce code quelque part? – nitech

+0

pas encore :(.. pas assez de temps pour le tri .. lemme savoir si vous en avez besoin ... – effkay

+0

Avez-vous publié le code n'importe où pour le moment? Je cherche à faire à peu près la même chose que vous sont dans ce post.Merci d'avance. – jsmith

0

Vous pouvez légalement utiliser Google Maps commerciales certains types de applications. Ils vous accordent une licence et une clé API à intégrer dans votre code de page. Il y a, bien sûr, certaines restrictions. Voir http://code.google.com/apis/maps/terms.html.

[Modifié pour clarifier. Vous pouvez l'utiliser si vous n'en faites pas directement, ce qui était l'intention de l'OP.]

+5

... vous ne devez pas facturer les frais d'utilisation de l'API Google Maps, du Service ou du Contenu, à moins que vous n'ayez conclu un accord écrit distinct avec Google ou obtenu l'autorisation écrite de Google de le faire – Axarydax

+0

merci Axarydax pour avoir fait remarquer; Cependant, mon application ne facturera pas l'utilisation de Google Maps, ni elle sera utilisée pour calculer les frais de transport, elle sera utilisée pour un devis approximatif, un – effkay

+0

10.6 vous ne devez pas utiliser le service ou le contenu ... en rapport avec ... expédition, gestion de flotte ... ou similaire – MarkJ

5

Vous pouvez utiliser la base de données OpenStreetMaps et faire vous-même le calcul, mais cela impliquerait un certain codage.

+0

Je suis prêt pour le codage; aucun indice pour cela? – effkay

+2

Il ya des charges sur le Wiki à: http://wiki.openstreetmap.org/wiki/Develop voir aussi http://sourceforge.net/projects/travelingsales/ –

0

Habituellement, la plupart des fichiers de formes de route ont des champs begin_address/end_address pour chaque segment de route où vous pouvez interpoler les adresses. L'essentiel est que vous avez un problème SIG se manifestant dans la collecte et l'organisation des données d'adresse, les choses NP à mon avis est le problème le plus simple.

Regardez dans postgis. Vous pouvez convertir des fichiers de forme. le irc room #postgis sur irc.freenode.net est extrêmement utile, donc il y a une liste de diffusion.

+0

Je pense que l'obtention des données de vecteur de route à moindre coût sera le premier problème. – MarkJ

2

Vous pouvez utiliser openstreetmap avec pgrouting dans postgis si tout ce qui vous intéresse est approximatif. Si vous faites simplement du city-to-city, vous n'avez pas vraiment à vous soucier du géocodage, car les villes lat latines sont assez bien connues.

Si votre service est contraint à l'Angleterre, je voudrais garder une grande table DB des combinaisons pour la distance par paires des 5 000 premières villes. Calculez-le une fois hors ligne à l'aide de pgrouting, puis appelez-le lorsque la requête arrive. Cela rendra l'application beaucoup plus rapide pour la plupart de vos utilisateurs. Tous les principaux lecteurs de cartes ont des API de routage (Yahoo, Bing, MapQuest, Nokia) Vous pouvez également consulter deCarta pour le même type de service. Ils ont été le moteur LBS derrière Yahoo et Google depuis un certain temps. [Update] Si vous ne faites que cela pour une estimation approximative, vous avez vraiment besoin de faire un routage ou vous pouvez simplement faire une ligne droite. La ligne droite est beaucoup plus simple à résoudre. Vous avez juste besoin de lat lat pour les centres des villes sans les données du réseau routier ou faire les calculs de routage.

+2

La distance en ligne droite pourrait être trompeuse pour certains voyages? Dover à Norwich pourrait obtenir le camion un peu humide sur un voyage en ligne droite :) – MarkJ

+0

D'accord, mais vous avez définitivement à payer de l'argent décent pour les algorithmes de routage qui comprennent cela et il semblait que le coût était une très grande préoccupation. – TheSteve0

0

Que diriez-vous de 2-5 pence par requête, pay-as-you-go, à travers postcodeanywhere.co.uk. Ils travaillent avec les AA, donc leurs données sont probablement assez précises et complètes. Vous pourriez économiser du temps de développement (ce qui se traduit également par de l'argent). Vérifiez auprès des compteurs de haricots si cela vaut 2 pence par citation.Si ce n'est pas le cas, vous pouvez exécuter les X voyages les plus populaires à travers leur service et mettre en cache les résultats (peut violer leurs termes et conditions, vérifiez d'abord).

1

Depuis le 1er avril, The Ordnance Survey publie beaucoup de ses données, y compris son produit Code-Point en tant que download from their website gratuit. Il a également été mirrored by MySociety qui inclut la conversion aux coordonnées WGS84 (c.-à-d. Celles utilisées par les GPS) à partir desquelles il serait alors assez trivial de calculer les grandes distances entre les deux points - assez insignifiant pour faire partie d'un SQL interroger si vous avez les points dans une base de données.

Si vous avez besoin d'être plus précis pour les distances réelles de conduite, vous pouvez également télécharger les données Meridian, et mettre en œuvre un algorithme de routage assez basique (Djakstra pourrait être utile ici)