Яндекс Карты по координатам в модальном окне
Почему функция ymaps не видит координаты?
jQuery:
ymaps.ready(init);
var lat = $(this).data('LA');
var long = $(this).data('LO');
function init (lat, long)
{
var myMap = new ymaps.Map('map',
{
center: [lat, long],
zoom: 9,
controls: ["zoomControl", "fullscreenControl"]
});
}
HTML:
<h1>Orders</h1>
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<table class="table table-striped"> <thead>
<tr>
<th>ID</th>
<th>Customer</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr data-toggle="modal" data-LA="30" data-LO="40" data-target="#orderModal">
<td>1</td>
<td>24234234</td>
<td>A</td>
</tr>
<tr data-toggle="modal" data-LA="35" data-LO="45" data-target="#orderModal">
<td>2</td>
<td>24234234</td>
<td>A</td>
</tr>
<tr data-toggle="modal" data-LA="40" data-LO="50" data-target="#orderModal">
<td>3</td>
<td>24234234</td>
<td>A</td>
</tr>
</tbody>
</table>
<div id="orderModal" class="modal hide fade" role="dialog" aria-labelledby="orderModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
<h3>Order</h3>
</div>
<div class="modal-body">
<div id="map" style="width: 600px; height: 400px"></div>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
</div>
</div>
Ответы (1 шт):
Автор решения: YaCor'
→ Ссылка
Глобальные переменные lat и long видны в функции карты init без дополнительных манипуляций: http://jsfiddle.net/Lof0p1qg/
ymaps.ready(init);
var lat = 55.8
var long = 37.7;
function init () {
...
Однако вы некорректно работаете с картой. Она инициализируется и отрисовывается в скрытом модальном окне с самого начала. И ей для этого требуются координаты центра, которые ещё не готовы.
Вам следует задать базовые координаты с самого начала, а не после нажатия на таблицу. Поэтому необходимо задать ей хоть какой-то стартовый центр, чтобы устранить ошибку. А уже в дальнейшем организовать смену центра карты через setCenter.