2010-06-08 4 views
1

Quand je crée Gmap dont elle avait besoin pour établir le centre et le zoomPosition GMap Polyligne du centre

Une fois que nous avons créé une carte via le constructeur GMap2 , il faut l'initialiser. Cette initialisation est accomplie avec l'utilisation de la méthode setCenter() de la carte. La méthode setCenter() nécessite une GLatLng coordonnée et un niveau de zoom et cette méthode doivent être envoyés avant d'autres opérations sont effectuées sur la carte, y compris réglage d'autres attributs de la carte lui-même.

En raison de cette route ne se situe pas au centre - c'est un exemple http://grab.by/4OD6

je sur la base des coordonnées pour obtenir le centre?

Et obtenir un zoom qui affiche tous les objets de la carte?

Mon code:

var TrainingGMap = Class.create (( 
    initialize: function (div_id, points, options) ( 
    this.options = Object.extend ((), options) 
    this.points = points; 
    this.map = new GMap2 (document.getElementById (div_id)); 
    this.map.setCenter (new GLatLng (this.points [0]. lan, this.points [0]. lon), 12); 
    this.map.setUIToDefault(); 
    this.set_route(); 
) 

    set_route: function() ( 
    var line = new Array(); 
    for (var i = 0; i <this.points.length; i + +) ( 
     line [i] = new GLatLng (this.points [i]. lat, this.points [i]. lon); 
    ) 
    var polyline = new GPolyline (line, "# aa0000", 5); 
    this.map.addOverlay (polyline); 
) 
)); 

Répondre

2

-je résoudre mon problème

this.map.setCenter(polyline.getBounds().getCenter()); 
this.map.setZoom(this.map.getBoundsZoomLevel(polyline.getBounds())); 

Nouveau code

var TrainingGMap = Class.create({ 
    initialize: function(div_id, points, options) { 
    this.options = Object.extend({}, options) 
    this.points = points; 
    this.map  = new GMap2(document.getElementById(div_id)); 
    this.map.setCenter(new GLatLng(this.points[0].lan, this.points[0].lon), 12); 

    this.map.setUIToDefault(); 
    var line = new Array(); 
    for (var i = 0; i < this.points.length; i++) { 
     line[i] = new GLatLng(this.points[i].lan,this.points[i].lon); 
    } 
    var polyline = new GPolyline(line, "#aa0000", 5); 

    this.map.setCenter(polyline.getBounds().getCenter()); 
    this.map.setZoom(this.map.getBoundsZoomLevel(polyline.getBounds())); 
    this.map.addOverlay(polyline); 
    } 
}); 
1

var = TrainingGMap Class.create ({ initialize: function (div_id , points, options) { this.options = Object.extend ({}, options) this.points = points; this.map = nouveau GMap2 (document.getElementById (div_id)); this.map.setCenter (nouveau GLatLng (this.points [0] .lan, this.points [0] .lon), 12);

this.map.setUIToDefault(); 
var line = new Array(); 
for (var i = 0; i < this.points.length; i++) { 
    line[i] = new GLatLng(this.points[i].lan,this.points[i].lon); 
} 
var polyline = new GPolyline(line, "#aa0000", 5); 
var tengah=Math.round(polyline.getVertexCount()/2)-1; 
this.map.setCenter(polyline.getVertex(tengah)); 
this.map.setZoom(this.map.getBoundsZoomLevel(polyline.getBounds())); 
this.map.addOverlay(polyline); 

} });