Центрирование пользовательских отметок на карте Google

  • Автор темы Tank2
  • 27
  • Обновлено
  • 14, May 2024
  • #1
Всем привет, У меня возникли большие проблемы с попыткой центрировать мои пользовательские метки на карте Google и увеличить их масштаб, чтобы показать их все одновременно.

Может ли кто-нибудь понять, почему это не работает!? Вот код ниже: Спасибо !!!
 

var scriptFolder = location.pathname.substr(0, location.pathname.lastIndexOf('/') + 1);

var marker = [];

var map;

var lastZoom = 3;

var lastSizeW = 40;

var lastSizeH = 30;

function initialize() {

var styles = [

{"elementType": "geometry", "stylers": [{"visibility": "no"}]}, {"elementType": "labels", "stylers": [{"visibility": "no"}]}, {"stylers": [{"color": "#ffffff"}, {"visibility": "yes"}]}, {}

];

var styledMap = new google.maps.StyledMapType(styles);

var centerlatlng = new google.maps.LatLng(0, 0);

var myOptions = {

zoom: 3

, center: centerlatlng

, styles: styles

, panControl: true

, zoomControl: false

, mapTypeControl: false

, scaleControl: false

, streetViewControl: false

, overviewMapControl: false

, rotateControl: true

, disableDefaultUI: true

, mapTypeId: google.maps.MapTypeId.ROADMAP

};

map = new google.maps.Map(document.getElementById("map"), myOptions);

var zoomControlDiv = document.createElement('div');

var zoomControl = new ZoomControl(zoomControlDiv, map);

var image_bar = document.getElementById("pin_image_bar");

zoomControlDiv.index = 1;

map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(zoomControlDiv);

map.controls[google.maps.ControlPosition.RIGHT_TOP].push(image_bar);

createMarker();

google.maps.event.addDomListener(map, 'zoom_changed', function () {

var zoom = map.getZoom();

if (zoom > lastZoom) {

lastSizeW = lastSizeW + 40;

lastSizeH = lastSizeH + 30;

for (i in marker) {

var image = new google.maps.MarkerImage(scriptFolder + "" + pins.Image, null, null, null, new google.maps.Size(lastSizeW, lastSizeH));

marker.setIcon(image);

}

}

else {

if (lastSizeW != 40 && lastSizeH != 30) {

lastSizeW = lastSizeW - 40;

lastSizeH = lastSizeH - 30;

}

for (i in marker) {

var image = new google.maps.MarkerImage(scriptFolder + "" + pins.Image, null, null, null, new google.maps.Size(lastSizeW, lastSizeH));

marker.setIcon(image);

}

}

lastZoom = zoom;

});



$('#map').children().closest('div').append(' <video loop="" autoplay="" poster="image_xi_logo_01.png" style="position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%) translateY(-50%); transform: translateX(-50%) translateY(-50%); min-width: 100%; min-height: 100%; width: auto; height: auto; overflow: hidden;opacity:0.7;"><source src="video_xi_bg_05a.webm" type="video/webm"> </video>');

$('.gm-style').children().children().closest('div').addClass('pins');

}

function createMarker() {

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

for (i in pins) {

var position = new google.maps.LatLng(pins.Lat, pins.Lng);

var image = new google.maps.MarkerImage(scriptFolder + "" + pins.Image, null, /* size is determined at runtime */ null, /* origin is 0,0 */ null, /* anchor is bottom center of the scaled image */ new google.maps.Size(lastSizeW, lastSizeH));

marker = new google.maps.Marker({

map: map

, title: pins.Name

, position: position

, icon: image

});

/*var content = '<div id="iw-контейнер">';

content += '<div class="iw-title">'+pins.Info.Title+'</div>';

content += '<div class="iw-content">';

content += '<div class="iw-subTitle">'+pins.Info.Content.Title+'</div>';

content += '<img src="images/'+pins.Image+'" alt="'+pins.Info.Title+'" height="115" width="83">';

content += '<p>'+pins.Info.Content.Detail+'</p>';

content += '</div>';

content += '<div class="iw-bottom-gradient"></div>';

content += '</div>';*/

bounds.extend(marker.getPosition());

marker.pinDetail = pins;

google.maps.event.addListener(marker, 'click', function () {

$("#pname").html(this.pinDetail.Name);

var image = "<img src='" + this.pinDetail.Image + "' style='visibility:visible;'/>"

$("#pimage").html(image);

$("#ptitle").html(this.pinDetail.Info.Title);

$("#pcontent").html(this.pinDetail.Info.Content);

document.getElementById('pin_image_bar').style.display='';

document.getElementById('overlay').style.display='';

$('#overlay').show();

$('#pin_image_bar').show();

});

}

}

function ZoomControl(controlDiv, map) {}

Код (разметка):

Tank2


Рег
25 Apr, 2012

Тем
1

Постов
4

Баллов
14
  • 08, Jun 2024
  • #2
я только что ответил на свой вопрос, добавив сразу после «varbounds = new google.maps.LatLngBounds();» следующее:
 map.fitBounds(bounds); 
map.panToBounds(bounds); 
Код (разметка):
 

loverbbw


Рег
01 Jan, 2011

Тем
0

Постов
2

Баллов
2
Тем
49554
Комментарии
57426
Опыт
552966

Интересно