It is currently 21 April 2025, 20:55 Advanced search

[RISOLTO]google.maps fitBounds

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

[RISOLTO]google.maps fitBounds

Postby poidomani » 8 February 2017, 9:26

in #GMAP non vedo google.maps.LatLngBounds(); Molti esempi sul web lo utilizzano.
Esempio :
http://stackoverflow.com/questions/1556921/google-map-api-v3-set-bounds-and-center
Yes, simply declare your new bounds object.

var bounds = new google.maps.LatLngBounds();
Then for each marker, extend your bounds object:

bounds.extend(myLatLng);
map.fitBounds(bounds);
API: google.maps.LatLngBounds
Last edited by poidomani on 9 February 2017, 11:47, edited 2 times in total.
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: google.maps.LatLngBounds();

Postby d.arrivabene » 8 February 2017, 9:36

Cosa vuoi fare? Aggiungere marker?
User avatar
d.arrivabene
Pro Gamma
Pro Gamma
 
Posts: 1232
Joined: 5 October 2011, 8:36
Location: Bologna

Re: google.maps.fitBounds

Postby poidomani » 8 February 2017, 9:44

no vorrei, ad esempio, vedere una polyline per intero, quindi con il giusto valore di zoom.
Qui ad esempio non vedo il punto di arrivo che è Mantova
Attachments
Cattura.JPG
Cattura.JPG (26.1 KiB) Viewed 12518 times
Last edited by poidomani on 8 February 2017, 18:46, edited 1 time in total.
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: google.maps.fitBounds

Postby poidomani » 8 February 2017, 17:45

stavo guardando il vostro GdmapAdapter e vedo che quello che vorrei fare è già previsto e come mai non mi funziona? FitBound non dovrebbe rendere visibile l'intera polyline?
Code: Select all
if (setBounds && polyLine.path && polyLine.path.length) {
    var bounds = new google.maps.LatLngBounds();
    var min = 0;
    var max = polyLine.path.length - 1;
    if (setBounds.length === 2) {
      min = Math.max(setBounds[0], min);
      max = Math.min(setBounds[1], max);
    }
    //
    for (var i = min; i <= max; i++) {
      bounds.extend(this.toGmapPosition(polyLine.path[i]));
    }
    //
    this.map.fitBounds(bounds);
  }
Last edited by poidomani on 8 February 2017, 18:46, edited 1 time in total.
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: google.maps.fitBounds

Postby poidomani » 8 February 2017, 18:42

questo per esempio funziona come serve a me(inserisci il valore al posto di TUAAPIKEY). Secondo è un problema non riuscire a debuggare il vostro codice.

Code: Select all
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #canvas_mappa { height: 100% }
    </style>
    <script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?key=TUAAPIKEY&sensor=false">
    </script>
    <script type="text/javascript">
      function initializza() {
        var latLngCasa = new google.maps.LatLng(44.5084774, 11.3763345);
        var opzioni = {
          center: latLngCasa,
          zoom: 12,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("canvas_mappa"), opzioni);
        var marker = new google.maps.Marker({position: latLngCasa, map: map, title: "Bologna" });
      var locations = [
        [44.5084774, 11.3763345, 'Casa', 'BO'],
        [44.836218, 11.5364055, 'Ferrara', 'FE'],
        [45.1617874, 10.7382311, 'Mantova', 'MN']
      ];
      var loc;
      // Calculate length & path
      var p = [];
      for (i = 0; i < locations.length; i++) {
         loc = locations[i];
         p.push({lat : loc[0], lng : loc[1]});
      }
      var poly = new google.maps.Polyline({
           id : "path",
           path : p,
           strokeColor : "blue",
           strokeWeight : 3,
      });
      poly.setMap(map);
      var bounds = new google.maps.LatLngBounds();
      var myPlace1 = new google.maps.LatLng(44.5084774, 11.3763345);
      var myPlace2 = new google.maps.LatLng(45.1617874, 10.7382311);
      bounds.extend(myPlace1);
      bounds.extend(myPlace2);
      map.fitBounds(bounds);
  }
    </script>
  </head>
  <body onload="initializza()">
    <div id="canvas_mappa" style="width:100%; height:100%"></div>
  </body>
</html>
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: google.maps fitBounds

Postby d.arrivabene » 9 February 2017, 10:06

Giovanni, è molto più semplice. Ho fatto un progettino pubblico sulla console chiamato "idc-google-maps" con quello che chiedi.

Ho guardato un pò di documentazione di Instant Developer Cloud e un pò di quella di Google e alla fine con poche righe di codice ho ottenuto l'indicazione da A a C passando per B.

Un progetto pubblico lo puoi forkare ed evenutalmente integrare con altre tue funzionalità. Se poi fai "commit" e "pullRequest" poi io (proprietario del progetto originario) la posso accettare e rendere disponibile a tutti i fork successivi.

Spero di essere stato chiaro e utile a te e a tutti gli altri che hanno queste necessità.
User avatar
d.arrivabene
Pro Gamma
Pro Gamma
 
Posts: 1232
Joined: 5 October 2011, 8:36
Location: Bologna

Re: google.maps fitBounds

Postby poidomani » 9 February 2017, 10:08

GRAZIE
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: google.maps fitBounds

Postby poidomani » 9 February 2017, 10:26

adesso funziona anche la mia versione, ho dovuto togliere lo zoom.
E se volessi impostare io i punti sulla mappa invece di predisporli nel codice?
C'è qualche evento che posso sfruttare? Adesso provo
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: google.maps fitBounds

Postby poidomani » 9 February 2017, 10:38

però non riesco a gestire più punti. Ho aggiunto Bolzano e mi è sparito il marker su Mantova. Ho scritto bene? Penso che col tuo sistema scelga lui il percorso ottimale.
Immagina che un rappresentante voglia programmare un giro di visite ai clienti.
Code: Select all
// then the other places you want to link each other
  var middleLocation = {lat : 44.836218, lng : 11.5364055};
  var middleLocation2 = {lat : 44.836218, lng : 11.5364055}; // Mantova
  var endLocation = {lat : 46.4892313, lng : 11.3121382}; // Bolzano
  //
  // now, let's build the route object with directions and options available
  var optRoute = {
    origin : startLocation,
    waypoints : [{location : middleLocation}, {location : middleLocation2}],
    destination : endLocation,
    travelMode : 'DRIVING',
    show : true
  };
Attachments
Cattura.JPG
Cattura.JPG (30.29 KiB) Viewed 12493 times
Cattura.JPG
Cattura.JPG (45.49 KiB) Viewed 12493 times
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: google.maps fitBounds

Postby d.arrivabene » 9 February 2017, 11:41

Mi sfugge qualcosa: middleLocation e middleLocation2 non hanno le stesse coordinate?
User avatar
d.arrivabene
Pro Gamma
Pro Gamma
 
Posts: 1232
Joined: 5 October 2011, 8:36
Location: Bologna

Next

Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 20 guests

cron