Проблемы с использованием LatLngBounds и центра карты - PullRequest
0 голосов
/ 13 мая 2011

У меня проблема с отображением карты.У меня есть коллекция маркеров (из базы данных через php и json), и я хочу, чтобы центр и масштаб для карты были применены относительно всех маркеров;Вот почему я не устанавливаю центр и масштаб на карте и не использую объект LatLngBounds.Дело в том, что он не работает.

Это код javascript:

var jsonURL="http://localhost/gpsdev/db2json.php";
var map; 


function init(){    

    var options = {
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        mapTypeControl:false,
        scaleControl:true,
        streetViewControl:false,
        zoom:12,
        center: new google.maps.LatLng(-25.973728,32.582745)                                 
    };                                                   

    var mapBounds= new google.maps.LatLngBounds();       
    map = new google.maps.Map(document.getElementById('map'), options);                                                                       

    $.getJSON(jsonURL,{cli:"1"}, function(data){
        for (var i = 0; i < data.length; i++) {
            var point = new google.maps.LatLng(data[i].Latitude,data[i].Longitude);
            mapBounds.extend(point);            
            new google.maps.Marker({
                position: point, 
                map: map, 
                title:data[i].PlateNR
            });
        }
    }); 
    map.fitBounds(mapBounds);
}

window.onload=init;

, если я уберу зум и отцентрирую его, он не будет работать.это json, который вводится в javascript:

[
{\"VehicleID\":\"1\",\"ClientID\":\"1\",\"PlateNR\":\"MMA-01-01\",\"Type\":\"Ligeiro\",\"Latitude\":\"-25.973728\",\"Longitude\":\"32.582745\",\"Velocity\":\"0.000\",\"Ignition\":\"0\",\"ClientName\":\"Sergio\"},
{\"VehicleID\":\"1\",\"ClientID\":\"1\",\"PlateNR\":\"MMA-01-01\",\"Type\":\"Ligeiro\",\"Latitude\":\"-25.972456\",\"Longitude\":\"32.578968\",\"Velocity\":\"10.000\",\"Ignition\":\"1\",\"ClientName\":\"Sergio\"},
{\"VehicleID\":\"1\",\"ClientID\":\"1\",\"PlateNR\":\"MMA-01-01\",\"Type\":\"Ligeiro\",\"Latitude\":\"-25.970083\",\"Longitude\":\"32.580879\",\"Velocity\":\"80.000\",\"Ignition\":\"1\",\"ClientName\":\"Sergio\"},
{\"VehicleID\":\"1\",\"ClientID\":\"1\",\"PlateNR\":\"MMA-01-01\",\"Type\":\"Ligeiro\",\"Latitude\":\"-25.968191\",\"Longitude\":\"32.577724\",\"Velocity\":\"90.000\",\"Ignition\":\"1\",\"ClientName\":\"Sergio\"}
]

Что я здесь не так делаю?

Ответы [ 2 ]

1 голос
/ 13 мая 2011
$.getJSON(jsonURL,{cli:"1"}, function(data){
    for (var i = 0; i < data.length; i++) {
        var point = new google.maps.LatLng(data[i].Latitude,data[i].Longitude);
        mapBounds.extend(point);            
        new google.maps.Marker({
            position: point, 
            map: map, 
            title:data[i].PlateNR
        });
    }
    // this is where you should call map.fitBounds()
    map.fitBounds(mapBounds);
}); 
// move the following line from its existing location to inside $.getJSON call
// map.fitBounds(mapBounds);
0 голосов
/ 13 мая 2011

Проверьте этот учебник: http://www.svennerberg.com/2008/11/bounding-box-in-google-maps/,, но будьте осторожны, он не о последнем API (v3).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...