Клуб API Карт

JavaScript API 2.x Автоматическое позиционирование

Пост в архиве.

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

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Примеры. Размещение карты на странице.</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<!--
Подключаем API карт 2.x
Параметры:
- load=package.full - полная сборка;
- lang=ru-RU - язык русский.
-->
<script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU"
type="text/javascript"></script>

<script type="text/javascript">
ymaps.ready(init);

function init () {

var myMap = new ymaps.Map('map', {
center: [48.322364, 54.272168], // Москва
zoom: 10
});

myPlacemark1 = new ymaps.Placemark([48.322364, 54.272168], {
iconContent: 'Метка 1'
}, {
preset: 'twirl#blueStretchyIcon'
}),
myPlacemark2 = new ymaps.Placemark([42.222364, 54.172168], {

iconContent: 'Метка 2'
}, {
preset: 'twirl#greenStretchyIcon'
}),
myMap.geoObjects
.add(myPlacemark1)
.add(myPlacemark2);

}
</script>
</head>

<body>
<h2>Размещение карты на странице</h2>

<div id="map" style="width:600px; height:300px"></div>
</body>
</html>

 

14 комментариев

Посмотрите в сторону map.setBounds. Область в которую входят две точки расчитать совсем не сложно.

http://api.yandex.ru/maps/doc/staticapi/1.x/dg/concepts/map_auto_position.xml

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

 

http://api.yandex.ru/maps/doc/staticapi/1.x/dg/concepts/map_auto_position.xml

в старой версии было автоматическое,

Непонятно причем тут Статик АПИ

 

Вы можете добавить свои метки в коллекцию и спросить у нее область

[48.322364, 54.272168]

[42.222364, 54.172168] 

добавил:

  mymap.setBounds([42,53],[49,55]);

все равно не показывает обе метки в заданной области

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml">

Примеры. Размещение карты на странице.









Размещение карты на странице






 

почему?

посмотрите что принимает этот метод

Number[][]   Границы области показа.

 

mymap.setBounds([42,53][49,55]);

так тоже не робит :( просвятите плиз новичка 

myMap.setBounds([ [_lat_, _lng_], [_lat_, _lng_] ])

спасибо добрый человек :)

48.322364, 54.272168 это город ульяновск, а показывает  совсем не то.

на яндекс картах в поиске по"48.322364, 54.272168"  находит ульняовск, а гугле на картах точка рядом с САГИЗ (казахстан).

в моей карте показывает тож в казахстане, хотя если искать по картам в яше - то ульяновск.

может тип координат надо где-то указать или что? 

при подключении АПИ можно указать порядок координат в параметре &coordorder=latlong | longlat

спасибо!

Алексей Yarrr!
28 января 2016, 03:51

надо бы c основами js разобраться.

вы куском [42,53] создаете массив из двух элементов.

далее: [42,53][...] - вы обращаетесь к элементам этого массива

далее: [42,53][42,53] - parse error, потому что [] - оператор выборки элемента из массива, к которому он применяется. а 42, 53 - это не скаляр.

оно не то, что не работает. оно изначально не имело шансов на работу ;-), потому что это не на JS написано.


если вас смутило Number[][], то это означает массив, из массивов, из чисел. т.е. [ [ число,  число, ...], [ число, ...], [ число, ...], ... ]

вам нужен был частный случай Number[2][2] ;-)

 

далее: [42,53][42,53] - parse error, потому что [] - оператор выборки элемента из массива, к которому он применяется. а 42, 53 - это не скаляр.оно не то, что не работает. оно изначально не имело шансов на работу ;-), потому что это не на JS написано.

 

Почитай про волшебный оператор "запятая". С точки зрения javascript это корректная конструкция - вернет undefined, т.к. 53 индекс в массиве не определен



Алексей Yarrr!
28 января 2016, 03:51

Точно. кругом магия!