Масштабирование по центру на карте в Google Maps API V3 - PullRequest
5 голосов
/ 01 декабря 2011

Я новичок в использовании карт Google и пытаюсь выяснить, как ограничить функцию масштабирования, чтобы она не масштабировалась нигде, кроме центра карты, и не увеличивала масштаб до точки мыши. По сути, он масштабируется по центру возвращаемой карты, независимо от того, где находится указатель мыши на карте, в отличие от увеличения, где указатель мыши находится на карте. Я даже не знаю, возможно ли это в настоящее время, была бы признательна за помощь.

<script type="text/javascript">
        function initialize() {
        var latlng = new google.maps.LatLng(51.285583, 1.091045);
        var myOptions = {
        zoom: 15,
        center: latlng,
        scrollwheel: true,
        navigationControl: false,
        mapTypeControl: false,
        scaleControl: false,
        draggable: false,
        mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);

        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(51.285826, 1.089973),
            map: map,
            title: 'Run of The Mill',
            clickable: true
            });
        }
    </script>

Ответы [ 3 ]

5 голосов
/ 01 декабря 2011

Существует несколько типов масштабирования:

  • с использованием элемента управления масштабированием - масштабирование к центру карты
  • с использованием колеса прокрутки - масштабирование указателя мыши при появлении жалоб
  • с помощью двойного щелчка - это сначала центрирует место под указателем мыши, а затем увеличивает

Так что, если вы хотите использовать только первый тип масштабирования, вы можете отключить два других, установив disableDoubleClickZoom ипараметры карты прокрутки на false.

Более того, вы можете обработать событие карты dblclick (событие с колесом прокрутки не так просто, но, возможно, вы найдете способ , как обращаться с колесом прокрутки и в javascript ), и в этомОбработчик просто меняет масштаб карты, используя map.setZoom().Центр карты останется прежним.Довольно легко.

2 голосов
/ 28 марта 2013

Или справьтесь с этим, повторно центрировав карту при изменении масштаба. Это сохраняет ожидаемую функциональность при двойном щелчке и колесе прокрутки.

google.maps.event.addListener(map,'zoom_changed',function () {
  map.setCenter(new google.maps.LatLng(47.61388802057299,-122.31870898147581));
})
0 голосов
/ 01 декабря 2011

Из того, что я вижу в вашем коде, вы увеличиваете переменную latlng, которую вы объявили выше. Это правильно. Ваша переменная myOptions затем передается в объявление вашей новой карты. Таким образом, вы должны сосредоточиться на 51.285583, 1.091045, который является Caterbury Kent в Великобритании.

Если именно на это указывает ваша мышь, она работает, если это не поможет, я бы предложил скопировать пример из примеров Google и вырезать то, что вам не нужно для первой демонстрации.

http://code.google.com/apis/maps/documentation/javascript/examples/index.html

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