logistica con mappoint - infologis.biz · il problema del commesso viaggiatore ..... 17 i gis,...

18
Logistica con MapPoint Gian Paolo Calzolaro www.infologis.biz La conoscenza a dimensione d’impresa

Upload: buicong

Post on 15-Feb-2019

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Logistica con MapPoint

Gian Paolo Calzolaro

www.infologis.biz

La conoscenza a dimensione d’impresa

Page 2: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

2

I GIS, quali benefici per la logistica? .................................................................................................................. 2

Quale GIS per la mia azienda ? .......................................................................................................................... 3

MapPoint: Panoramica e funzionalità ............................................................................................................... 5

Esempi di utilizzo di MapPoint ........................................................................................................................ 11

Rappresentare la supply chain su carta geografica ..................................................................................... 12

La matrice delle distanze ............................................................................................................................. 14

Il problema del commesso viaggiatore ....................................................................................................... 17

I GIS, quali benefici per la logistica?

La logistica si occupa della gestione dei flussi fisici ed informativi, tali flussi si

realizzano in uno spazio che ha come punto di riferimento la geografia del nostro

pianeta. I flussi si differenziano per i mezzi utilizzati per trasferire i materiali o le

informazioni nello spazio (autostrade, ferrovie, aria e acqua per i materiali, linee

telefoniche per le informazioni). Entrambi i flussi ed in modo particolare quello fisico

non possono prescindere dallo spazio geografico, pertanto nelle scelte (sia

strategiche che operative) bisogna inglobare informazioni di tipo geografico che oggi

sono facilmente reperibili tramite i GIS (sistemi informativi geografici). L’utilizzo del

GIS è utile a livello strategico per le decisioni di localizzazioni di depositi, siti

produttivi e punti di distribuzione; a livello operativo un GIS è utile per la gestione

delle consegne sia per la pianificazione che per il controllo. L’utilizzo di un sistema

GIS può essere di grande aiuto anche per una piccola e media impresa, in quanto

consente di prendere decisioni più precise senza limitarsi decidere in base misure

spanno metriche di più vicino e più lontano, chiaramente per una piccola impresa

andranno bene soluzioni software di fascia bassa in quanto le problematiche da

gestire saranno meno complesse ed anche il volume dei dati minore, inoltre sono

presenti sul mercato diverse soluzioni open source molto valide. Lo stesso Google

maps può essere di grande aiuto per una micro impresa se utilizzato in maniera

Page 3: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

3

intelligente e sfruttando tutte le funzionalità. Il primo passo per poter utilizzare un

GIS nelle scelte logistiche è la georeferenziazione dei dati aziendali che consiste

nell’abbinare i dati (anagrafiche clienti, fornitori, depositi) con un punto geografico

presente nel database del GIS. Molto spesso queste informazioni non sono

omogenee tra di loro, ad esempio l’indirizzo può essere gestito in maniera differente

soprattutto quando è previsto un solo campo nel gestionale per inserire questa

informazione lasciando grande libertà nell’inserimento dei dati, questa libertà

diventa poi lavoro aggiuntivo quando dobbiamo importare questi dati in un sistema

GIS dovendo provvedere ad una pulitura dei dati, quindi quando si predispone il

proprio archivio clienti e fornitori è opportuno darsi delle regole per la scrittura degli

indirizzi in modo da facilitare il lavoro successivamente, meglio ancora se è possibile

mettere dei controlli nel nostro programma gestionale.

Quale GIS per la mia azienda ?

Sul mercato esistono diversi programmi GIS alcuni commerciali ed altri open source,

vediamo una veloce panoramica dei software più diffusi e le loro principali

caratteristiche. La scelta del programma più adatta alla propria azienda dipende

dalla tipologia di problematiche che si intende gestire con il GIS.

Arcgis

ArcGIS comprende un insieme di applicazioni integrate: ArcMap, ArcCatalog e

ArcToolbox. Utilizzando tutte e tre queste applicazioni è possibile svolgere qualsiasi

operazione GIS, dalla più semplice alla più avanzata, inclusi la produzione

cartografica, la gestione di dati, l’analisi geografica, l’editing di dati e l’elaborazione

di dati geografici. ArcView consente anche di utilizzare una grande quantità di dati

spaziali e risorse disponibili su Internet attraverso i servizi di ArcIMS. L’interfaccia di

ArcMap è comune alle altre due applicazioni desctop di Arc GIS (ArcEditor e ArcInfo),

solamente ha delle estensioni che sono di uso limitato o inutilizzabili a seconda del

tipo di licenza installata.

Page 4: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

4

MapInfo

MapInfo è un software di mapping ricco di funzioni e facile da usare. MapInfo

permette di associare i dati a delle mappe geografiche, per ottenere una

rappresentazione cartografia delle informazioni, ma anche e soprattutto per

analizzarli geograficamente sulla base dei concetti di vicinanza e appartenenza.

MapInfo non è solo un'applicazione per costruire mappe tematiche ma offre una

quantità di strumenti che consentono di guardare in modo nuovo i dati, mettendoli

in relazione fra loro e con il territorio, e di analizzare la realtà attuale e i possibili

scenari futuri; inoltre, con MapInfo si ha a disposizione svariate opzioni per

presentare i risultati della vostra analisi, che potete poi stampare o portare in altre

applicazioni o su Internet. MapInfo, consente di vedere in modo più semplice e

intuitivo le relazioni fra i dati, prendere decisioni basate su analisi più approfondite,

scoprire nuove opportunità per le attività, e presentare in modo diretto ed efficace.

TransCAD

TransCAD è un Sistema Informativo Geografico (GIS) sviluppato specificamente ad

uso dei professionisti dei trasporti per archiviare, visualizzare, gestire ed analizzare i

dati trasportistici. TransCAD unisce il GIS ed i modelli di trasporto in una unica

piattaforma integrata. TransCAD può essere usato per tutti i modi di trasporto, ad

ogni scala geografica o livello di dettaglio. TransCAD fornisce: Un potente motore

GIS con speciali estensioni ai trasporti e gli strumenti per la creazione di mappe, di

visualizzazione ed analisi specifici per le applicazioni trasportistiche

GRASS GIS

GRASS è un potente elaboratore di immagini tridimensionali sulle quali è possibile

effettuare diversi tipi di analisi a partire da quelle vettoriali. Oltre questo punto forte

bisogna aggiungerne altri due: la possibilità di lavorare su dati vettoriali

multiformato (diverse linee, punti e poligoni presenti sullo stesso foglio di analisi e a

cui il programma associa specifiche categorie) e la possibilità di utilizzare altri

software grazie al sistema dei moduli.

Quantum GIS

Quantum GIS è un client GIS con licenza GNU General Public License mantenuto

come progetto ufficiale dell'Open Source Geospatial Foundation (OSGeo). Quantum

GIS implementa un gran numero di funzioni e plugins . Attraverso l'interfaccia molto

Page 5: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

5

intuitiva si possono gestire, modificare e analizzare dati geografici, accedere ai

servizi geografici e creare layout di stampa. Sono inoltre disponibili procedure di

accesso ai più diffusi geodatabase (GRASS, postgis, SpatiaLite, MySQL, ORACLE, ESRI

personal geodatabase) e di geprocessing vettoriale e raster (Buffer, intersezione,

unione , dissolvenza...).

Gis per i trasporti

Esistono dei GIS dedicati al mondo dei trasporti sviluppati specificamente per

archiviare, visualizzare, gestire ed analizzare i dati trasportistici. Questi sistemi

integrano il motore GIS ed i modelli di trasporto in un’unica piattaforma. Questi

software forniscono un set di strumenti in grado di risolvere diversi problemi legati

ai percorsi di distribuzione e raccolta delle merci, risolvendo molte variazioni del

classico problema dei percorsi, includendo limitazioni sul tempo di servizio, sulla

possibilità di effettuare fermate, sull’utilizzo dei veicoli da più depositi e sull’uso di

flotte non omogenee. Una altra classe di problemi risolti da questi software sono i

problemi di Arc Routing legati all’uso efficiente della rete stradale, trovando larga

applicazione nel porta a porta. Infine i gis per i trasporti sono di grande aiuto per

risolvere i problemi legati ai flussi di rete quali l’efficiente consegna di beni o servizi

presenti nei trasporti o in altri contesti.

È evidente che tale classi di problemi sono tipici delle medie e grandi imprese di

trasporto, un piccolo autotrasportatore può trarre già dei grandi benefici da un GIS

open source od entry level come può essere MapPoint, un GIS dedicato ai trasporti

sarebbe eccessivamente oneroso, considerando anche le competenze necessarie

per utilizzarlo.

MapPoint: Panoramica e funzionalità

MapPoint è un programma Microsoft che può essere considerato come un software

GIS elementare, il programma infatti contiene nella versione europea la cartografia

stradale dell’Europa, i punti geografici rilevanti e la suddivisione amministrativa degli

stati. In MapPoint è possibile caricare dei dati e vederne la loro rappresentazione

geografica in diversi formati, è possibile caricare i dati da Excel o Access. Inoltre il

programma consente di calcolare il tragitto tra diversi punti sulla carta, inoltre è in

grado dato un serie di soste da effettuare di ottimizzare il percorso. Impostati gli

Page 6: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

6

opportuni parametri è possibile calcolare il tempo di guida ed il suo costo. Il

programma inoltre permette di disegnare sulla carta e di misurare gli oggetti

disegnati, ad esempio se si disegna un rettangolo è possibile calcolare la sua

superficie, se viene disegnato un cerchio è possibile calcolare il suo raggio. Altre

funzionalità del programma sono l’area di tempo guida che consente a partire da un

punto indicato sulla mappa di individuare l’area all’interno della quale ricadono i

punti che sono ad una determinata distanza di tempo dal punto di origine, inoltre il

programma consente di individuare i luoghi all’interno di un raggio chilometrico (ad

esempio ponendo come centro la stazione di Milano è possibile avere l’elenco di

tutti gli alberghi che si trovano nel raggio di due KM).

La funzione aggiunta guidata dati alla carta consente di importare i dati presenti in

un foglio Excel o in database sulla carta geografica. La procedura guidata richiede

nella prima maschera il file da cui prelevare i dati, successivamente richiede di

abbinare per ogni colonna della tabella con un tipo di dati, è importante che ci sia

almeno una colonna contenente un dato geografico come comune, provincia,

regione, latitudine o longitudine. La procedure prosegue abbinando ogni record ad

un punto geografico, la procedura evidenza i record che non è riuscita ad abbinare

in automatico suggerendo diverse opzioni. A questo punto è possibile selezionare

tra nove diverse rappresentazioni grafiche dei dati, la procedura per ogni tipo di

grafico indica le caratteristiche e per quale tipo di dati è più adattato.

Successivamente viene richiesto il campo dati che deve essere rappresentato sulla

carta e si possono selezionare eventuali raggruppamenti (ad esempio se i dati sono

indicati in relazione è possibile effettuare raggruppamenti per provincia e regione),

Page 7: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

7

infine viene richiesta la scala con cui rappresentare i dati sulla carta.

Page 8: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

8

Page 9: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

9

La funzione pianifica itinerario permette di selezionare dei punti sulla carta e

calcolare l’itinerario stradale da percorrere. Per creare dei punti dell’itinerario

abbiamo due possibilità: selezionare un dato aggiunto con la funzione aggiunta

guidata dati alla carta, oppure cliccare un punto qualsiasi della carta. Un volta

individuato il punto da aggiungere all’itinerario clicchiamo con il pulsante destro e

clicchiamo sulla voce di menù itinerario ed abbiamo tre possibilità: aggiungi come

fine, inizio o sosta. Per poter calcolare un itinerario sono necessari almeno due

punti uno come inizio e uno come fine. A questo punto clicchiamo su pianifica

itinerario che apre una finestra con l’elenco dei punti dell’itinerario, nel caso

esistono più tre soste è bene utilizzare la funzione ottimizza soste cliccando

sull’apposito pulsante in modo da organizzare le soste nel modo più efficiente in

termini di tempi. A questo punto clicchiamo su crea indicazioni ed il programma

evidenzia l’itinerario sulla carta e apre una finestra con le indicazioni stradali, inoltre

Page 10: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

10

il programma calcola la distanza ed il tempo totale e se sono stati impostati i costi

del carburante ed i suoi consumi calcola il costo totale del viaggio.

La funzione creazione area tempo guida consente di tracciare una linea sulla carta

che unisce tutti i punti che sono distanti lo stesso tempo da un punto centrale.

Questa funzione ad esempio può essere utile individuare i potenziali clienti infatti se

ad esempio i nostri clienti sono disposti a compiere al massimo 30 minuti per

raggiungere il nostro punto vendita, se tracciamo l’area tempo guida possiamo

individuare i clienti situati all’interno di questa area. Per utilizzare questa funzione

basta selezionare un punto sulla carta, cliccare con il pulsate destro del mouse e

selezionare la voce di menù crea area tempo guida, si apre una finestra che richiede

il numero di minuti per cui calcolare l’area ed il programma disegna la linea sulla

carta.

Page 11: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

11

Esempi di utilizzo di MapPoint

MapPoint consente di personalizzare il programma creando dei componenti

aggiuntivi che possono essere installati nel programma per aumentarne le

funzionalità. Sul mercato sono presenti diversi addons, molti dei quali sono in lingua

inglese anche se esistono alcune soluzione per il mercato italiano. L’altra possibilità

è quella di utilizzare il modello ad oggetti di MapPoint all’interno di MS Access, la

tecnologia ActiveX si basa sul Component Object Model (COM) di Microsoft e

permette ai programmi di interagire e, in particolare permette a un programma di

accedere agli oggetti di un altro programma e di manipolarli all’esterno di

quell’applicazione. L’uso dell’automazione è un modo efficace per creare e per

estendere le applicazioni. L’automazione può ridurre notevolmente il tempo di

sviluppo, perché, anziché sviluppare dal nulla e collaudare una funzionalità, potete

prenderla in prestito da un’altra applicazione. In Access è possibile importare i dati

del proprio gestionale per poter fare elaborazioni ed inoltre è possibile realizzare

rapidamente delle maschere per gestire l’interfaccia utente, pertanto l’utilizzo

Page 12: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

12

integrato di Access e MapPoint può essere una soluzione efficiente da realizzare in

casa per risolvere semplici problematiche.

Per poter utilizzare il modello ad oggetti di MapPoint è necessario conoscere il

modello che è possibile reperire nella guida in linea di MapPoint. La guida spiega in

maniera semplice è chiara quali sono gli oggetti che si possono utilizzare, le loro

caratteristiche e come utilizzarli, inoltre riporta diversi esempi di codice da cui

prendere spunto per realizzare le proprie applicazioni. Per poter utilizzare il modello

è necessario creare un riferimento in MS Access, pertanto apriamo un modulo VBA,

andiamo nel menù strumenti e clicchiamo su riferimenti, si apre una finestra con

l’elenco delle librerie e dei programmi installati sul proprio PC, tra questi bisogna

scegliere il programma MapPoint e cliccare sul tasto OK.

Rappresentare la supply chain su carta geografica

La supply chain esiste e muove i materiali all’interno di uno spazio geografico che è

necessario conoscere per valutare i suoi vincoli ed opportunità. Vediamo quindi

come rappresentare su una cartina geografica una supply chain utilizzando il

Page 13: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

13

software MapPoint. La prima operazione da effettuare è l’individuazione dei nodi

della rete, in questo caso noi rappresenteremo i fornitori (unicamente quelli legati al

core business), i siti produttivi (sia interni che subfornitori), i magazzini ed i punti di

distribuzione (in questo caso utilizziamo i punti di distribuzione in quanto abbiamo

ipotizzato che la supply chain fornisca un bene di consumo di massa, pertanto non

avrebbe senso rappresentare i clienti che sarebbero miglia di nodi). Una volta

individuati i nodi andremo a compilare in un foglio Excel le seguenti informazioni:ID

NODO, LOCALITA, PROVINCIA, TIPO, PROPRIETA, VALORE FLUSSO, VOLUME FLUSSO,

DIMENSIONE.

ID NODO, LOCALITA e PROVINCIA sono informazioni reperibili in anagrafica clienti

fornitori, mentre per tipo intendiamo Fornitore, Produzione, Magazzino,

Distributore, mentre con proprietà intendiamo se il nodo è di proprietà dell’azienda

oppure no. Per gli altri dati dobbiamo effettuare una elaborazione statistica sui

movimenti di magazzino per i quali consideriamo gli ultimi dodici mesi. Per i fornitori

il valore del flusso è dato dal valore della merce acquistata, mentre per i siti

produttivi il valore del flusso è dato dalla differenza del valore delle materie prime

utilizzate e quello dei prodotti o semilavorati realizzati, per i magazzini i valore è

uguale alla differenza della merce in ingresso con quello della merce in uscita, infine

per i distributori il valore è uguale alla merce venduta. Analogamente andiamo a

definire il volume del flusso utilizzando in questo caso non la moltiplicazione tra QT

e COSTO ma tra QT e VOLUME (nel caso non fosse disponibile l’informazione del

volume unitario, basterà considerare il volume totale indicato nel DDT)

Per dimensione intendiamo la giacenza media a valore del materiale conservato nel

nodo nel corso degli ultimi dodici mesi, tale informazione ha senso per i magazzini e

per i siti produttivi. A questo punto abbiamo tutte le informazioni necessarie e

possiamo quindi importare i dati del foglio excel su una cartina di MapPoint ed

Page 14: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

14

analizzare la distribuzione dei nodi sul territorio, la distribuzione dei flussi in volume

ed in valore.

La matrice delle distanze

Consideriamo il caso in cui abbiamo bisogno di calcolare la distanza tra n deposti di

partenza e m deposti di arrivo. Le operazioni da realizzare per ottenere quanto

desiderato sono le seguenti:

1. Geocodifica dei dati

Page 15: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

15

2. Creazione della matrice delle distanze

3. Calcolo della distanza

Con la prima operazione andiamo a trasformare l’indirizzo dei nostri deposti in

coordinate geografiche, come abbiamo visto in un post precedente possiamo

utilizzare la macro del foglio di calcolo excel2kml-address.xls per ottenere la

latitudine e la longitudine dei nostri deposti, tale operazione non sempre è perfetta

pertanto è necessario verificare i dati che non sono stati geocodificati

correttamente, una buona base di partenza sicuramente potrebbe essere di scrivere

in maniera corretta ed omogenea tutti i dati all’interno del proprio gestionale.

Con la seconda operazione andiamo ad incrociare la tabella con i depositi di

partenza con quella dei depositi di destinazione in modo da avere tutte le

combinazioni possibili di partenza ed arrivo. Su questa tabella poi applicheremo la

funzione per il calcolo della distanza. Per ottenere la matrice delle distanze

utilizziamo una query di creazione tabella:

SELECT [DEPOSITI PARTENZA].[DEPOSITO PARTENZA], [DEPOSITI PARTENZA].LATPAR,

[DEPOSITI PARTENZA].LONPAR, [DEPOSITI DESTINAZIONE].[DEPOSITO DESTINAZIONE],

[DEPOSITI DESTINAZIONE].LATDES, [DEPOSITI DESTINAZIONE].LONDES, 0.0001 AS

DISTANZA INTO [Matrice Distanze]

FROM [DEPOSITI DESTINAZIONE], [DEPOSITI PARTENZA];

L’ultima operazione è quella che ci consente di calcolare la distanza nella matrice

delle distanze, per quesa operazione abbiamo due opzioni, la prima consiste

nell’utilizzare una funzione trigonometrica chiamata del seno inverso una formula in

trigonometria sferica utile alla navigazione per calcolare le distanze tra due punti su

una sfera, in questo caso però otteniamo una distanza in linea d’aria che può essere

utile se non ci serve sapere i km effettivi tra due località ma il loro ordine di

grandezza. Se invece siamo interessati ad avere un dato preciso dobbiamo ricorrere

all’utilizzo di MapPoint che consente il calcolo chilometrico delle distanze tra due

Page 16: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

16

punti. Per poter utilizzare il motore cartografico di MapPoint in Access è necessario

inserire nei riferimenti nel modulo VBA il riferimento alla libreria di MapPoint, in

questo modo possiamo utilizzarne gli oggetti per costruire la funzione che permette

il calcolo della distanza. La funzione seguente scrive sulla tabella della matrice delle

distanze le distanze tra due punti, per poterla utilizzare bisogna passargli come

argomenti il nome della tabella della matrice delle distanze, il nome del campo con

la latitudine di partenza, il nome del campo con la longitudine di partenza, il nome

del campo con la latitudine di destinazione, il nome del campo con la longitudine di

destinazione ed il nome del campo in cui verrà scritta la distanza.

Public Function distanza(TabellaDistanze, CampoLATPAR, CampoLONPAR, CampoLATDES,

CampoLONDES, CampoDISTANZA)

Dim objApp As New MapPoint.Application

Dim objMap As MapPoint.Map

Dim objRoute As MapPoint.Route

Dim inizio As MapPoint.Location

Dim fine As MapPoint.Location

Dim db As DAO.Database

Dim tabella As DAO.Recordset

Dim campo As DAO.Field

Set objMap = objApp.ActiveMap

Set objRoute = objMap.ActiveRoute

objApp.Visible = False

objApp.UserControl = False

Set db = CurrentDb

Set tabella = db.OpenRecordset(TabellaDistanze, dbOpenDynaset)

Set campo = tabella.Fields(CampoDISTANZA)

Do Until tabella.EOF

LATPAR = tabella.Fields(CampoLATPAR)

LONPAR = tabella.Fields(CampoLONPAR)

LATDES = tabella.Fields(CampoLATDES)

LONDES = tabella.Fields(CampoLONDES)

Set inizio = objMap.GetLocation(LATPAR, LONPAR)

Set fine = objMap.GetLocation(LATDES, LONDES)

objRoute.Waypoints.Add inizio

objRoute.Waypoints.Add fine

objRoute.Calculate

distanza = objRoute.Distance

tabella.Edit

campo = distanza

tabella.Update

objRoute.Waypoints.Item(1).Delete

objRoute.Waypoints.Item(1).Delete

tabella.MoveNext

Loop

objMap.Saved = True

objApp.Quit

End Function

Page 17: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

17

Il problema del commesso viaggiatore

il problema del commesso viaggiatore può essere definito come segue: siano

assegnate n città A, B, C,…, e le distanze dij fra esse esistenti , il problema consiste

nella determinazione di una sequenza di città da visitare in modo che ogni città

venga visitata una sola volta, minimizzando il percorso seguito e ritornando alla città

di partenza. Vediamo come risolvere questo problema attraverso l’utilizzo del

software MapPoint prima direttamente con il programma e poi attraverso il codice.

Consideriamo che con il nostro automezzo dobbiamo effettuare dieci consegne in

una giornata presso nostri clienti con partenza e ritorno presso la nostra azienda.

Utilizzando il programma MapPoint, importiamo i dati sulla posizione dei clienti

inseriti in un file Excel attraverso il menù Dati, aggiunta guidata dati alla carta,

selezioniamo l’opzione simboli, premiamo su avanti, poi selezioniamo importa dati

da aggiungere alla carta, proseguiamo e selezioniamo il file da cui importare i dati ed

importiamo i dati sulla carta, a questo punto selezioniamo l’area della carta su cui

sono stati aggiunti i simboli, clicchiamo con il pulsante destro sull’area e

selezioniamo l’opzione aggiungi simboli come soste, a questo punto clicchiamo sul

deposito di partenza con il pulsante destro e selezioniamo l’opzione itinerario

aggiungi come inizio e poi aggiungi come fine. Clicchiamo quindi su ogni punto della

carta che rappresenta un nostro cliente e andiamo sull’opzione itinerario pianifica

sosta ed indichiamo la durata della sosta. A questo punto andiamo nel menù

itinerario e clicchiamo sul tasto ottimizza soste, in questo modo MapPoint risolve il

problema del commesso viaggiatore, infine clicchiamo su pianifica itinerario per

avere la durata del viaggio e le indicazioni stradali. Se vogliamo risolvere il problema

tramite codice partiamo da una tabella in Access con i seguenti campi: CLIENTE,

LONGITUDINE, LATITUDINE, DURATA SOSTA. Successivamente utilizziamo la

seguente funzione per ottenere un vettore che ci restituisce l’elenco delle soste.

Public Function TPS(TabellaDati, CampoCliente, CampoLAT, CampoLON, CampoSosta)

Page 18: Logistica con mappoint - infologis.biz · Il problema del commesso viaggiatore ..... 17 I GIS, quali benefici per la logistica? La logistica si occupa della gestione dei flussi fisici

Gian Paolo Calzolaro - Logistics & Automation Consultant – www.infologis.biz

18

Dim objApp As New MapPoint.Application

Dim objMap As MapPoint.Map

Dim objRoute As MapPoint.Route

Dim db As DAO.Database

Dim tabella As DAO.Recordset

Set db = CurrentDb

Set tabella = db.OpenRecordset(TabellaDati, dbOpenDynaset)

tabella.MoveLast

NumeroRighe = tabella.RecordCount

tabella.MoveFirst

Set objMap = objApp.ActiveMap

Set objRoute = objMap.ActiveRoute

objApp.Visible = False

objApp.UserControl = False

ReDim Point(NumeroRighe) As MapPoint.Location

Do Until tabella.EOF

c = c + 1

CLIENTE = tabella.Fields(CampoCliente)

LAT = tabella.Fields(CampoLAT)

LON = tabella.Fields(CampoLON)

SOSTA = tabella.Fields(CampoSosta)

Set Point(c) = objMap.GetLocation(LAT, LON)

objRoute.Waypoints.Add Point(c), CLIENTE

objRoute.Waypoints.Item(c).StopTime = SOSTA * geoOneMinute

tabella.MoveNext

Loop

tabella.Close

db.Close

objRoute.Waypoints.Optimize

objRoute.Calculate

NSOSTE = objRoute.Waypoints.Count

ReDim SOSTE(NSOSTE)

For x = 1 To NSOSTE

SOSTE(x) = objRoute.Waypoints.Item(x).Name

Next x

TPS = SOSTE

objMap.Saved = True

objApp.Quit End Function