jquery-ui-map设置缩放级别

时间:2012-08-03 22:59:37

标签: javascript jquery jquery-ui google-maps

我有以下代码来了解地图。除缩放参数外,一切正常。无论我为缩放设置什么,它总是显示相同的缩放级别。我该怎么办?

$('#pagemap').live("pageshow", function() {

            $('#map_canvas').gmap().bind('init', function(evt, map) {

                $('#map_canvas').gmap('getCurrentPosition', function(position, status) {

                        if ( status === 'OK' ) {

                            var clientPosition = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

                            $('#map_canvas').gmap('option', 'mapTypeId', google.maps.MapTypeId.SATELLITE);

                            $('#map_canvas').gmap('option', 'zoom', 13);            

                            $('#map_canvas').gmap('addMarker', {'position': clientPosition, 'bounds': true});

                        }
                });   
            });
      });

3 个答案:

答案 0 :(得分:5)

您需要将标记的'bounds'选项更改为false。

$('#map_canvas').gmap('addMarker', {'position': clientPosition, 'bounds': false});

  

如果将属性边界设置为true,则地图将自动计算视口和缩放,覆盖构造函数中的任何缩放集   块引用

this是更多信息的链接

答案 1 :(得分:0)

我遇到了解决方案的问题。如果我将边界设置为false,则地图将保持在其初始中心坐标的中心。好的。那么为什么我的地图集中在一个远离针的点?好的,没问题。但是,如果我仍想在添加标记后设置特定的缩放级别?

$("your-selector").gmap('addMarker', { 
    'position': latlng, 
    'bounds': true
}, function(map, marker) {
    map.set('zoom', 12);
}).click(function() {
    $(this.container).gmap('openInfoWindow', { 'content': 'TEXT_AND_HTML_IN_INFOWINDOW' }, this);
});

你只需回调gmap功能。但是人们,是不是该修正这个插件的API文档中所有损坏链接的时候了?难道没有时间为任何插件编写指定且清晰的Javascript文档吗?让我们互相帮助,这种方式相当复杂。我们正在失去很多时间。

答案 2 :(得分:0)

  

试试这个,看看这个" zoom:9"在代码中缩放级别......

<div id="MyDivScrolling">
    <div>
        <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyC8KY7rkZP7Xyq5oVM0nssUc4OPIP7MQtw&callback=initMap"></script>
        <script type="text/javascript">
            var markers = [{
            "title": 'Havana',
            "lat": '23.1330200',
            "lng": '-82.3830400',
            "description": 'José Martí International Airport, Havana'
        }
    ,
         {
             "title": 'Tampa',
             "lat": '27.964157',
             "lng": '-82.452606',
             "description": 'Tampa International Airport, Tampa'
         }
    ,
         {
             "title": 'Orlando',
             "lat": '28.538336',
             "lng": ' -81.379234',
             "description": 'Orlando International Airport, Orlando'
         }
    ,
        {
            "title": 'Havana',
            "lat": '23.1330200',
            "lng": '-82.3830400',
            "description": 'José Martí International Airport, Havana'
        }

    ,
        {
            "title": 'Havana',
            "lat": '23.1330200',
            "lng": '-82.3830400',
            "description": 'José Martí International Airport, Havana'
        }
      ,
        {
            "title": 'Miami',
            "lat": '25.7742700',
            "lng": '-80.1936600',
            "description": 'Miami International Airport, Miami'
        }
    ,
        {
            "title": 'Camagüey-Ignacio Agramonte',
            "lat": '21.416666666667',
            "lng": '-77.866666666667 ',
            "description": 'Camagüey-Ignacio Agramonte Airport, Camagüey'
        }


         ,
          {
              "title": 'Camagüey-Ignacio Agramonte',
              "lat": '21.416666666667',
              "lng": '-77.866666666667 ',
              "description": 'Camagüey-Ignacio Agramonte Airport, Camagüey'
          }
           ,
         {
             "title": 'Tampa',
             "lat": '27.964157',
             "lng": '-82.452606',
             "description": 'Tampa International Airport, Tampa'
         }];
            window.onload = function () {
                var mapOptions = {
                    center: new google.maps.LatLng(markers[0].lat, markers[0].lng),
                    zoom: 9,
                    mapTypeId: google.maps.MapTypeId.Streapmap
                };
                var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
                var infoWindow = new google.maps.InfoWindow();
                var lat_lng = new Array();
                var latlngbounds = new google.maps.LatLngBounds();
                for (i = 0; i < markers.length; i++) {
                    var data = markers[i]
                    var myLatlng = new google.maps.LatLng(data.lat, data.lng);
                    lat_lng.push(myLatlng);
                    var marker = new google.maps.Marker({
                        position: myLatlng,
                        map: map,
                        title: data.title
                    });
                    latlngbounds.extend(marker.position);
                    (function (marker, data) {
                        google.maps.event.addListener(marker, "click", function (e) {
                            infoWindow.setContent(data.description);
                            infoWindow.open(map, marker);
                        });
                    })(marker, data);
                }
                map.setCenter(latlngbounds.getCenter());
                map.fitBounds(latlngbounds);

                //***********ROUTING****************//

                //Intialize the Path Array
                var path = new google.maps.MVCArray();

                //Intialize the Direction Service
                var service = new google.maps.DirectionsService();

                //Set the Path Stroke Color
                var poly = new google.maps.Polyline({ map: map, strokeColor: 'Blue' });

                //Loop and Draw Path Route between the Points on MAP
                for (var i = 0; i < lat_lng.length; i++) {
                    if ((i + 1) < lat_lng.length) {
                        var src = lat_lng[i];
                        var des = lat_lng[i + 1];
                        path.push(src);
                        poly.setPath(path);
                        service.route({
                            origin: src,
                            destination: des,
                            travelMode: google.maps.DirectionsTravelMode.DRIVING
                        }, function (result, status) {
                            if (status == google.maps.DirectionsStatus.OK) {
                                for (var i = 0, len = result.routes[0].overview_path.length; i < len; i++) {
                                    path.push(result.routes[0].overview_path[i]);
                                }
                            }
                        });
                    }
                }
            }
        </script>
        <div class="MainSliderItem2 ImagesContainerItem">
            <div id="dvMap" style="width: 100%;height: 490px;position: relative;overflow: hidden;background-color: rgb(229, 227, 223);max-width: 80%;margin: 98px auto;">
            </div>
        </div>
    </div>
</div>