Пытаюсь сделать поиск ближайших меток из базы api 2.0
использовала статью
http://webmap-blog.ru/yan
но там через api 1.1
пытаюсь переделать это все, но на моменте вывода результатов поиска адресов из базы застряла, т.к. сам запрос верный вроди(т.е. в базе выдает строки по запросу) а на сайте не выводит список адресов (нет вывода данных в html никаких ни положительных, ни сообщения о том что ничего не найдено)
Не понимаю где проблемма ( Помогите кто чем может. Заранее огромное спасибо...
<script type="text/javascript">
var myMap, route, geoResult;
jQuery.noConflict();
ymaps.ready(init);
function init () {
myMap = new ymaps.Map("myMap", {
center: [30.534660619140578, 50.43971804350223],
zoom: 12,
type: "yandex#map"
});
var button = new ymaps.control.Button({
data: {
image: '/images/set_dot_icon.png',
title: 'Нажмите для определения Вашего местоположения'
}
}, {
selectOnClick: false
});
myMap.controls
.add("zoomControl")
.add("mapTools")
.add(button, {top: 5, left: 100})
.add(new ymaps.control.TypeSelector(["yandex#map", "yandex#satellite", "yandex#hybrid", "yandex#publicMap"]));
};
function showAddress (value) {
var geocoder = ymaps.geocode(value);
geocoder.then(
function (res) {
myMap.geoObjects.add(res.geoObjects);
var firstGeoObject = res.geoObjects.get(0),
bounds = firstGeoObject.properties.get('boundedBy');
myMap.setBounds(bounds);
radius = 200;
searchLocationsNear(res.g
},
function (err) {
}
);
function searchLocationsNear(center,radius) {
clearLocations();
jQuery.getJSON("poisk.php", {center:center, radius: radius}, function(data){
if (data.status == 'OK') {
var geoBounds = new ymaps.GeoObjectCollection();
var src_res="<p><strong>результаты поиска: </strong></p>";
src_res=src_res+'<p><strong>Найдено объектов: '+data.markers.length+'</strong></p>';
for (i = 0; i < data.markers.length; i++) {
var myPlacemark = new ymaps.Placemark(
[data.markers[i].lng, data.markers[i].lat], {
iconContent: '<div style="color:#ff0303;font
balloonContent: '<strong>Адрес:</strong> '+data.markers[i].address
}, {
draggable: true,
hideIconOnBalloonOpen: false
}
);
myMap.geoObjects.add(placemark);
geoBounds.add(new YMaps.GeoPoint(data.marke
src_res=src_res+'<p><a href="#" onClick="return go_to('+data.markers[i].lat+', '+data.markers[i].lng+",'
}
myMap.setBounds(geoBounds);
}
else
{
var src_res = '<p><strong>результаты поиска</strong></p><font color="red">По Вашему запросу объектов на карте не найдено</font>';
}
jQuery('#result').html(src_res);
});
}
function go_to(lat,lng,name,address,id){
myMap.setCenter(new YMaps.GeoPoint(lat,lng),17);
myMap.removeAllOverlays();
var placemark=new YMaps.Placemark(new YMaps.GeoPoint(lat,lng));
placemark.name='<div style="color:#ff0303;font
placemark.description = '<strong>Адрес:</strong> '+address+'</div></div>';
myMap.addOverlay(placemark);
placemark.openBalloon();
return false;
}
function clearLocations() {
myMap.removeAll();
firstGeoObject = 0;
jQuery('#result').html('');
}
}
</script>
poisk.php
<?php
$sdb_name = "localhost";
$user_name = "****";
$user_password = "***";
$db_name = "*****";
// соединение с сервером базы данных
if(!$link = mysql_connect($sdb_name, $user_name, $user_password))
{
echo "<br>Не могу соединиться с сервером базы данных<br>";
exit();
}
// выбираем базу данных
if(!mysql_select_db($db_name, $link))
{
echo "<br>Не могу выбрать базу данных<br>";
exit();
}
mysql_query('SET NAMES utf8');
header('Content-Type: application/json; charset=utf-8');
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
$center = $_GET["center"];
$exp_str1 = explode(",", $center);
$center_lat = $exp_str1[0];
$center_lng = $exp_str1[1];
$radius = 50;
$json = '{markers:['."\n";
$query = sprintf(" SELECT id, address, name, lat, lng, ( 6371 * acos( cos( radians(30.51759) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(50.43306) ) + sin( radians(30.51759) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20",
mysql_real_escape_string($center_lat),
mysql_real_escape_string($center_lng),
mysql_real_escape_string($center_lat),
mysql_real_escape_string($radius));
$result = mysql_query($query);
if (!$result) {
die("Invalid query: " . mysql_error());
}
if(mysql_num_rows($result)>0)
{
while ($row = mysql_fetch_array($result)){
$json.= "\n".'{'.'"id": "'.$row['id'].'",';
$json.= '"name": "'.$row['name'].'",';
$json.= '"address": "'.htmlspecialchars($row['address']).'",';
$json.= '"distance": "'.$row['distance'].'",';
$json.= '"lat": "'.$row['lat'].'",';
$json.= '"lng": "'.$row['lng'].'"';
$json.= '},';
}
$json = substr($json, 0,-1);
echo $json;
echo '], ', "\n", '"status": "OK"', "\n", '}';
}
else
{
echo '{"status": "false"}';
}
}
?>