Continuăm să ne familiarizăm cu caracteristicile versiunii 2.x API Yandex.Map (vezi părțile 1. 2. 3).
În această notă, pe exemple, ne vom familiariza cu posibilitățile de construire a rutelor de automobile.
Primul exemplu, rezolvă problema cea mai tipică pentru site-urile organizațiilor, calculul rutei spre biroul ei.
Luați în considerare lucrarea exemplului.
![Construirea rutelor de autoturisme folosind api 2 (trasee) Construirea rutelor rutiere folosind api 2](https://images-on-off.com/images/183/postroenieavtomobilnixmarshrutovispolzuy-89692e1b.jpg)
Voi explica codul sursă al exemplului.
Făcând clic pe butonul "Find", se numește o funcție în care sunt determinate valorile câmpurilor din formularul search_route începutul și sfârșitul traseului.
Aceste valori sunt transferate către ruterul ymaps.route și, ca parametru suplimentar, mapStateAutoApply: true - pentru poziționarea automată a hărții, după construirea rutei.
Apoi, verificăm dacă ruta construită anterior există sau nu pe hartă, dacă da, o ștergem din hartă și apoi adăugăm un nou traseu cu comanda myMap.geoObjects.add (traseu);
Dacă apar erori în timpul construcției rutei, le afișăm într-o fereastră pop-up.
La construirea unui traseu, este posibil să specificăm parametri suplimentari, cu unul dintre aceștia, mapStateAutoApply, pe care deja i-am întâlnit-o.
Voi enumera parametrii rămași:
avoidTrafficJams - valori adevărate - construiți un traseu în minte, false - fără a ține seama de blocajele de trafic. Atunci când utilizați opțiunea, luați în considerare faptul că nu este întotdeauna posibilă deturnarea blocajelor.
Valoarea implicită este falsă;
![Construirea rutelor de autoturisme folosind api 2 (auto) Construirea rutelor rutiere folosind api 2](https://images-on-off.com/images/183/postroenieavtomobilnixmarshrutovispolzuy-a27f7cf9.jpg)
Aici, codul exemplu este similar cu cel precedent, cu excepția a doi parametri:
boundedBy: [[56.155974,43.549068], [56.421028,44.155787]] - specifică limitele regiunii;
strictBounds: true - capacitatea de a căuta numai în zona specificată.
Putem specifica puncte intermediare pentru traseul nostru.
![Construirea rutelor de autoturisme folosind api 2 (auto) Construirea rutelor rutiere folosind api 2](https://images-on-off.com/images/183/postroenieavtomobilnixmarshrutovispolzuy-2b5f446d.jpg)
În acest exemplu, între punctele de început și sfârșit, adăugăm un punct intermediar la pătrat. Lenin
Apoi, atunci când se calculează un traseu, acesta va trebui întotdeauna să treacă printr-un punct de tranzit.
Dacă doriți, putem schimba stilul de afișare al traseului pe hartă în diverse moduri, precum și denumirea începutului și sfârșitului traseului.
![Construirea rutelor rutiere folosind api 2 (proprietățile puncte iconContent) Construirea rutelor rutiere folosind api 2](https://images-on-off.com/images/183/postroenieavtomobilnixmarshrutovispolzuy-3027b955.jpg)
Aici vom schimba pictogramele în roșu și vom adăuga text pe etichete și, de asemenea, vom schimba culoarea afișării rutei înseși și a transparenței acesteia.
Culoarea și amploarea transparenței rutei sunt specificate în linie
Mai multe linii de cod sunt responsabile pentru schimbarea stilului punctelor finale ale traseului:
// Utilizare getWayPoints () metoda pentru a obține o matrice de waypoint // (array puncte de rută de tranzit pot fi obținute prin utilizarea metodei getViaPoints) puncte var = route.getWayPoints (); // Setați stilul etichetei - pictogramele vor fi roșii și / / imaginile lor vor fi întinse sub punctele content.options.set ('preset', 'twirl # redStretchyIcon'); // Setați conținutul etichetelor în punctele de început și de terminare points.get (0) .properties.set ('iconContent', 'Point of Origin'); points.get (1) .properties.set ("iconContent", "Punct de sosire");
Putem înlocui cu ușurință icoanele standard cu ale noastre.
![Construirea rutelor rutiere folosind api 2 (proprietățile puncte iconContent) Construirea rutelor rutiere folosind api 2](https://images-on-off.com/images/183/postroenieavtomobilnixmarshrutovispolzuy-bf057556.jpg)
Aici am stabilit stilurile pentru imaginea noastră: