0

私の問題は、通常、fitBounds はオブジェクトを中央に配置しますが、小さすぎることです。特定のオブジェクトをマップの中心にして、可能な限りズームインする必要があると思います。実際、通常、ズーム レベルは 1 レベル高くなります。私の例を考えてください。ご覧のとおり、国は 1 レベル拡大しても 100% 表示されます。それを克服する方法はありますか?

これが私のコードです:

$(document).ready(function(){

  var locationBBOX = [["14.149166 49.002914","24.14444 49.002914","24.14444 54.834442","14.149166 54.834442","14.149166 49.002914"]];


  var map = new google.maps.Map(
      document.getElementById('map-div'), {
      center: new google.maps.LatLng(0, 0),
      disableDefaultUI: true,
      zoom: 1,
      mapTypeId: google.maps.MapTypeId.ROADMAP });

  var _bounds = new google.maps.LatLngBounds();

  for(var k in locationBBOX)
  {

    var _c1 = locationBBOX[k][0].split(' ');
    var _c2 = locationBBOX[k][2].split(' ');

    var _bbox = new google.maps.LatLngBounds(new google.maps.LatLng(parseFloat(_c1[1]),parseFloat(_c1[0])),new google.maps.LatLng(parseFloat(_c2[1]),parseFloat(_c2[0])));

    _bounds.union(_bbox);
  }

  map.fitBounds(_bounds);

  var ne = _bounds.getNorthEast();
  var sw = _bounds.getSouthWest();

  var boundingBoxPoints = [
                       ne, new google.maps.LatLng(ne.lat(), sw.lng()),
                       sw, new google.maps.LatLng(sw.lat(), ne.lng()), ne
                    ];

  var boundingBox = new google.maps.Polyline({
                       path: boundingBoxPoints,
                       strokeColor: '#FF0000',
                       strokeOpacity: 1.0,
                       strokeWeight: 2
                    });

  boundingBox.setMap(map);


});

ありがとう!

4

1 に答える 1

0

私は答えを見つけたと思います。Google マップは、すべてのコントロールを考慮しているようです (非表示の場合でも)。それに基づいて、実際の可視領域は小さくなります。次のスレッドを確認してください: https://groups.google.com/forum/?fromgroups#!topic/google-maps-js-api-v3/5kSPwZfDyJI

于 2013-05-17T11:38:39.533 に答える