Уровень масштабирования карты Google - PullRequest
2 голосов
/ 01 марта 2012

Я использую API карты Google с этого веб-сайта , спасибо автору.

Вот часть кода:

 function initMap() {
 map = new google.maps.Map(document.getElementById("map"), {
 center: new google.maps.LatLng(0, 0),
 zoom: 14,
 mapTypeId: google.maps.MapTypeId.ROADMAP,
 mapTypeControl: false,
 mapTypeControlOptions: {
 style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
 },
 navigationControl: true,
 navigationControlOptions: {
 style: google.maps.NavigationControlStyle.SMALL
 }
 });
  <?
 $query = mysql_query("SELECT * FROM markers WHERE ID='1'");
 while ($row = mysql_fetch_array($query)){
 $name=$row['name'];
 $lat=$row['lat'];
 $lon=$row['lng'];
 $desc=$row['address'];
  echo ("addMarker($lat, $lon,'<b>$name</b><br/>$desc');\n");
 }
 ?>
 center = bounds.getCenter();
 map.fitBounds(bounds);

Однако у меня возникает проблема с настройкой уровня масштабирования, он установлен на 14, но независимо от того, какое значение я изменил, он остается неизменным.

Я читал из комментариев ниже, кто-то предлагает убрать эту строку: map.fitBounds (границы);

Я удалил его, но центр карты переместился в другое место, которое я думаю (0,0).

Есть ли способ исправить проблему масштабирования этого кода? Я попытался отредактировать все размеры, но я не знаком с кодированием карты Google.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 01 марта 2012

Заменить это:

center = bounds.getCenter();
 map.fitBounds(bounds);

с:

map.setCenter(bounds.getCenter());

bounds.getCenter() вернет вычисленный центр границ, расширенных addMarker ()

2 голосов
/ 01 марта 2012

Похоже, вы устанавливаете уровень масштабирования при создании карты, но затем map.fitBounds() изменяет уровень масштабирования, чтобы содержать границы.

Попробуйте установить уровень масштабирования после установки области просмотра с помощью fitBounds.

...
map.fitBounds(bounds);
map.setZoom(14);
1 голос
/ 01 марта 2012

После оператора map.fitBounds (bounds) добавьте следующий оператор

map.setZoom (увеличение: число)

Это установит уровень масштабирования на желаемый уровень масштабирования.

Анализ вашего кода:

Вы инициализируете карту с уровнем масштабирования 14 и центром (0,0). Значение команды map.fitBounds (bounds); - она ​​корректирует границы карты, чтобы показать все добавленные маркеры, которые, в свою очередь, изменят уровень масштабирования. Если вы удалите это утверждение, ваш центр останется как (0,0), а уровень масштабирования - как 14. Если вы хотите установить центр карты, используйте следующий оператор

map.setCenter (latlng: LatLng)

Спасибо B.J.

1 голос
/ 01 марта 2012

Здесь вы можете выбрать, где вы хотите центрировать карту: center: new google.maps.LatLng(0, 0),

Ofc, вместо 0, 0 укажите другие цифры - это широта и долготаТогда вам не понадобятся подходящие границы - удалите его.

И масштаб: 14 будет работать (и любое другое число).Теперь он не работает, потому что он берет границы и пытается уместить все области внутри этих границ, и использовать МАКСИМАЛЬНОЕ масштабирование возможно, чтобы показать всю область.

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