У меня есть БД в которой есть названия и адреса магазинов, как вывести на карту метки по адресам, а в балуне, чтобы было название, которые считывается с БД, с помощью http-геокодера я адреса преобразую в координаты, как мне теперь имея в БД координаты, названия и адреса магазинов, поставить метки на карте, а в балун записать адрес.
Просто http-геокодер записывается координаты не в той последовательности в которой нужны, а в обратной и как запихнуть их в функцию Placemark ?
Вот сайт - http://skindoctors.ru/magazini
Вот код, как сейчас я вывожу каждый элемент геокодирую
<?php
Yii::import('application.
$mags = MagShop::model()->findall();
Yii::import('application.
$gors = MagCity::model()->findall();
Yii::import('application.
$magi = MagMag::model()->findall();
?>
<div class="content">
<div class="breadcrumb"><a href="/">Главная</a><span class="breadcrumb-separator"> > </span><span class="breadcrumb-page">Где купить</span></div>
<div class="shop">
<h1>Где купить</h1>
<div class="map_contener">
<div class="map_search">
<input type="text" value="" placeholder="Укажите адрес или станцию">
<button>Поиск</button>
</div>
<div class="left_map">
Мы представлены в городах
<ul>
<?php
foreach ($gors as $key => $value) {
echo "<li>".$value->name."</li>";
}
?>
</ul>
<div style="clear:both;border-bottom:2px solid grey; height:5px;width:95%;"></div>
Мы сотрудничаем с Интернет магазинами
<ul>
<?php
foreach ($magi as $key => $value) {
echo "<li><a href='".$value->href."'>"
}
?>
</ul>
</div>
<div class="right_map">
<div id="map"></div>
<div> <strong>Список всех точек продаж:</strong> <br> </div>
<div>
<?php
foreach ($mags as $key => $value) {
echo "<li>".$value->city->name.", ".$value->address.", ".$value->name."</li>";
}
?>
</div>
</div>
</div>
</div>
</div>
<?
// Параметры
$config = Array(
'host' => 'skin.mysql',
'user' => 'skin_mysql',
'password' => '9rrcmayq',
'dbname' => 'skin_doctors',
'tablename' => 'mag_shop',
'apikey' => 'AF9KblQBAAAA6RvWPAIAvuxk
);
$dp = mysql_connect($config['host'], $config['user'], $config['password']) or die('Ошибка при подключении к серверу СУБД: '.mysql_error());
mysql_select_db($config['dbname']) or die('Невозможно выбрать БД с именем "'.$config['dbname'].'": '.mysql_error());
mysql_query('SET NAMES utf8');
$addresses = mysql_query('SELECT * FROM '.$config['tablename']) or die('Ошибка при выполнении запроса к таблице "'.$config['tablename'].'": '.mysql_error());
$countGeocode = $countGeocodeFault = 0;
$result = '<table style="width:600px">';
while ($row = mysql_fetch_assoc($addresses)) {
$countGeocode++;
$xml = simplexml_load_file('http://geocode-maps.yande
$found = $xml->GeoObjectCollection
if ($found > 0) {
$coords = str_replace(' ', ',', $xml->GeoObjectCollection
$result .= '<tr><td>'.$row['address'
mysql_query("UPDATE `{$config['tablename']}` SET coords = '".mysql_real_escape_string($coords)."' WHERE id = {$row['id']}") or die("Ошибка при обновлении данных в таблице: ".mysql_error());
} else {
$result .= '<tr style="color:red"><td>'.$
$countGeocodeFault++;
}
};
$result .= '</table>';
echo $result;
mysql_close($dp);
if ($countGeocode) {
echo '<div style="margin-top:1em">Всего обработано адресов: '.$countGeocode.'</div>';
if ($countGeocodeFault) {
echo '<div style="color:red">Не удалось прогеокодировать: '.$countGeocodeFault.'</div>';
}
} else {
echo '<div>Таблица с адресами пуста.</div>';
}
?>
<script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<script type="text/javascript">
<?php
echo "var magObjs = [";
foreach ($mags as $key => $value) {
if ($key!=0) {
echo ",'".$value->city->name.",".$value->address."'";
} else {
echo "'".$value->city->name.",".$value->address."'";
}
}
echo "];";
?>
</script>
<script type="text/javascript">
var CityCoordinats;
function init(street) {
if (street) {
street = street;
var res = '';
var myGeocoder = ymaps.geocode(street);
myGeocoder.then(
function (res) {
var firstGeoObject = res.geoObjects.get(0);
CityCoordinats = firstGeoObject.geometry.getCoordinates();
myMap.setCenter(CityCoordinats, 9);
},
function (err) {
}
);
}
var myMap = new ymaps.Map('map', {
center: [55.753676, 37.619899],
zoom: 9,
controls: ['zoomControl']
});
for(var el=0;el<magObjs.length;el++){
}
<?php
if (count($mags)>0) {
echo "var objects = ymaps.geoQuery(";
foreach ($mags as $key => $value) {
if ($key!=0) {
echo ".add(ymaps.geocode('г. ".$value->city->name.", ".$value->address. "'))";
} else {
echo "ymaps.geocode('г. ".$value->city->name.", ".$value->address."'))";
}
}
} else {
echo "var objects = false;";
}
?>
if (objects) {
myMap.geoObjects.add(objects.clusterize());
};
}
ymaps.ready(init);
$(document).ready(function() {
$('.map_search button').click(function(){
$('.right_map #map').html('');
var street = $('.map_search input').val();
init(street);
})
$('.left_map ul li').click(function(){
$('.right_map #map').html('');
var street = $(this).text();
init(street);
})
});
</script>
<div style="clear:both;border-bottom:2px solid grey;"></div>