Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/47: Рейтинг темы: голосов - 47, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 15

PHP вывод yandex меток на карту

20.01.2019, 00:55. Показов 9016. Ответов 11

Студворк — интернет-сервис помощи студентам
Всем привет! помогите вывести метку на карту.

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

при таком коде все метки отображаются

Js карт

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    var myMap, myCollection;
 
    ymaps.ready(init);
 
    
  function init () {
        myMap = new ymaps.Map("map", {
        center: [53.195831, 50.104566],
        zoom: 13.31
        }, {
            balloonMaxWidth: 300
            });
 
    
    myMap.controls
        .add('zoomControl');
        myMap.controls.add('typeSelector')  ;
 
 
 
 
    
 
 
    var MyBalloonContentLayoutClass = ymaps.templateLayoutFactory.createClass(
    '<strong>$[properties.name]</strong>' +
    '<p>$[properties.description]</p>'
    );
 
    $.getJSON("metki.php",
function(json){
for (i = 0; i < json.markers.length; i++) {
 
var myPlacemark = new ymaps.Placemark([json.markers[i].lat,json.markers[i].lon], {
            name: json.markers[i].icontext,
            description: json.markers[i].balloontext,
            hintContent: json.markers[i].hinttext
            },{
                balloonContentLayout: MyBalloonContentLayoutClass,
                preset: json.markers[i].styleplacemark
            });
 
  // Добавляем метку на карту
  myMap.geoObjects.add(myPlacemark);
}
 
 
});}
содержимое файла metki.php подгружаемого с js
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
header('Content-Type: text/html; charset=utf-8');
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
 
$result = mysql_query("SELECT * FROM table_products");
if(mysql_num_rows($result)>0)
{
while ($mar = mysql_fetch_array($result))
{
 
$json =  array(icontext=>$mar['title'], hinttext=>$mar['title'], balloontext=>$mar['mini_description'], styleplacemark=>$mar['stylePlacemark'], lat=>$mar['lat'], lon=>$mar['lon']);
$markers[] = $json;
}
 
}
$points = array(markers=>$markers);
 
echo json_encode($points);
 
}
 
 
?>
например я открыл для изменения страницу продукта id 27, нужно чтобы карта подгрузилаась только с одной меткой и данными из бд продукта с id27 в бд хранятся широта и долгота в столбцах lat lon. чтобы центр карты встал на данную метку, как реализовать такое?

пробовал поменять в metki.php строку чтобы просто хоть вывести метку одну но получаю ошибку в консоле

эту строку
PHP
1
$result = mysql_query("SELECT * FROM table_products");
менял на
PHP
1
$result = mysql_query("SELECT * FROM table_products WHERE products_id='$id'",$link);
но не выходит =(

было бы хорошо если бы было как тут

https://snipp.ru/view/142 реализовано но не получается подкл PDO не сталкивался
там как раз было бы хорошо на странице редактирование в подвале оставить код где координаты центра менялись бы на точку с выбраной меткой ну и данные балуна конечно
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2019, 00:55
Ответы с готовыми решениями:

Вывод меток на карту посредством .getJSON()
Всем доброго времени суток, горит задача вывести группу меток на карту яндекс. В общем создал в контроллере метод действия возвращающий...

Yandex карты - динамическое добавление меток в зависимости от неких параметров
На странице есть два select'a с компанией(samsung/asus/acer/sony/etc...) и типом(мониторы/телевизоры/смартфоны/планшеты/etc...), при...

Как вставить Yandex карту?
Здравствуйте. Мне нужно вставить Yandex-карту в html разметку. Прошу скинуть пример. Спасибо.

11
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
20.01.2019, 10:26
Polevoy, нужно на клиенте заменить карту со всеми метками на карту с одной меткой. А в Вашей попытке замены, скорее всего, не верно определена переменная $id или синтаксис - уберите одинарные кавычки или в одинарных кавычках оставьте, например, нужный id. Тогда сработает.
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
20.01.2019, 13:59
Лучший ответ Сообщение было отмечено Polevoy как решение

Решение

Не нужно ничего дополнительно подгружать на клиенте. Вам на текущей странице должны быть доступны поля с координатами и т.п. Выводите их сразу на месте значений center, а чтобы не дублировать этот вывод в new ymaps.Placemark, можно написать так:
JavaScript
1
new ymaps.Placemark(myMap.getCenter(), {
Ну, и далее так же значения выводите, как у center, только не забывайте кодировать строки в HTML, если они еще не закодированы и есть риск появления кавычек.
1
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 15
20.01.2019, 14:54  [ТС]
Если убрать одинарные кавычки то получаю

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in

если же поставлю
PHP
1
$result = mysql_query("SELECT * FROM table_products WHERE products_id=id",$link);
то получаю метку на выводит метку id 1 самую первую из бд хотя редактируется метка 27

Добавлено через 1 минуту
пока не могу получить данные о текущей метки
открыл метку для редактирования id метки в бд 27
но не могу правильно отправить данные из бд c id 27 и получить нужный json ответ чтобы вставить координаты и вывести метку на карту ( только одну метку)

Добавлено через 19 минут
Если в теле php файла metkared.php
ставлю
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    $result = mysql_query("SELECT * FROM table_products WHERE products_id='$id'",$link);
 
    If (mysql_num_rows($result) > 0)
    {
 
    $mar = mysql_fetch_array($result);
 
    {
        $json =  array(icontext=>$mar['title'], hinttext=>$mar['brand'], balloontext=>$mar['mini_description'], styleplacemark=>$mar['stylePlacemark'], lat=>$mar['lat'], lon=>$mar['lon']);
        $markers[] = $json;
 
    }$points = array(markers=>$markers);
    echo json_encode($points);
    }
}
то я получаю json с данными текущей страницы c id 27

но тогда ниже в js как вывести их если использовать тот же код js

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    var myMap, myCollection;
 
    ymaps.ready(init);
 
    
  function init () {
        myMap = new ymaps.Map("map", {
        center: [53.195831, 50.104566],
        zoom: 13.31
        }, {
            balloonMaxWidth: 300
            });
 
    
    myMap.controls
        .add('zoomControl');
        myMap.controls.add('typeSelector')  ;
 
 
 
 
    
 
 
    var MyBalloonContentLayoutClass = ymaps.templateLayoutFactory.createClass(
    '<strong>$[properties.name]</strong>' +
    '<p>$[properties.description]</p>'
    );
 
    $.getJSON("metki.php",
function(json){
for (i = 0; i < json.markers.length; i++) {
 
var myPlacemark = new ymaps.Placemark([json.markers[i].lat,json.markers[i].lon], {
            name: json.markers[i].icontext,
            description: json.markers[i].balloontext,
            hintContent: json.markers[i].hinttext
            },{
                balloonContentLayout: MyBalloonContentLayoutClass,
                preset: json.markers[i].styleplacemark
            });
 
  // Добавляем метку на карту
  myMap.geoObjects.add(myPlacemark);
}
 
 
});}
ясно дело что он не сможет ничего получить из
JavaScript
1
$.getJSON("metki.php"
мне надо указать как то чтобы с тела страницы тогда json выводился
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
20.01.2019, 15:35
Цитата Сообщение от Polevoy Посмотреть сообщение
Если убрать одинарные кавычки то получаю
Значит, в $id у вас не число.

Добавлено через 2 минуты
$ перед id куда делся?
0
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 15
20.01.2019, 15:38  [ТС]
Цитата Сообщение от estic Посмотреть сообщение
$ перед id куда делся?
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
20.01.2019, 15:41
Цитата Сообщение от Polevoy Посмотреть сообщение
пока не могу получить данные о текущей метки
открыл метку для редактирования id метки в бд 27
но не могу правильно отправить данные из бд c id 27 и получить нужный json ответ чтобы вставить координаты и вывести метку на карту ( только одну метку)
Я вам написал, как обойтись без JSON и прочего. Если что-то не нравится в моем предложении, так и напишите: "без костылей меня не устраивает".

Добавлено через 3 минуты
Цитата Сообщение от Polevoy Посмотреть сообщение
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in
И что вы хотели этим сказать? В запросе была ошибка, поэтому и результат логического типа. Вы же результат даже не проверяете, поэтому дело доходит до mysql_num_rows().
0
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 15
20.01.2019, 15:45  [ТС]
Цитата Сообщение от estic Посмотреть сообщение
Я вам написал, как обойтись без JSON и прочего
простите я не пойму немного myMap.getCenter() как поставить если в начале инициализация карты идет
и как я могу туда поставить данные если без json то данные о метки ее название и тд как туда вписать?

Добавлено через 2 минуты
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type="text/javascript">
ymaps.ready(init);
function init() {
var myMap = new ymaps.Map("map", {
center: [<?php echo ' '.$object['lat'].','.$object['lon'].''; ?>],
zoom: 10
}, {
searchControlProvider: 'yandex#search'
});
 
var myCollection = new ymaps.GeoObjectCollection();
 
 
var myPlacemark = new ymaps.Placemark([
myMap.getCenter()
], {
balloonContent: '<?php echo $object['title']; ?>'
}, {
preset: '<?php echo $object['icon']; ?>',
iconColor: '#ff0000'
});
myCollection.add(myPlacemark);
 
myMap.geoObjects.add(myCollection);
}
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
20.01.2019, 15:57
Лучший ответ Сообщение было отмечено Polevoy как решение

Решение

Квадратные скобки вокруг myMap.getCenter() уберите.
1
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 15
20.01.2019, 18:10  [ТС]
Цитата Сообщение от estic Посмотреть сообщение
Квадратные скобки вокруг myMap.getCenter() уберите.
момент

Добавлено через 20 минут
Цитата Сообщение от estic Посмотреть сообщение
Квадратные скобки вокруг myMap.getCenter() уберите.
не могу получить координаты из php и внутри этой же страницы в js подставить их ((

Добавлено через 5 минут
Цитата Сообщение от estic Посмотреть сообщение
Квадратные скобки вокруг myMap.getCenter() уберите.
не могу получить координаты из php и внутри этой же страницы в js подставить их ((
так уже что то получается кажется, сейчас отпишусь
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
20.01.2019, 18:13
У вас более-менее правильно написано. Проверьте, есть ли в $object поля с координатами, корректен ли формат значений и т.п. Выборкой данных в $object какой код занимается?
1
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 15
24.01.2019, 15:42  [ТС]
Цитата Сообщение от estic Посмотреть сообщение
Квадратные скобки вокруг myMap.getCenter() уберите.
не могу получить координаты из php и внутри этой же страницы в js подставить их ((
так уже что то получается кажется, сейчас отпишусь
Цитата Сообщение от estic Посмотреть сообщение
У вас более-менее правильно написано
В итоге

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script type="text/javascript">
ymaps.ready(init);
function init() {
var myMap = new ymaps.Map("map", {
center: [<?php echo ' '.$mar["lat"].','.$mar["lon"].''; ?>],
zoom: 19.31
}, {
balloonMaxWidth: 410
});
 
myMap.controls.add('zoomControl');
            myMap.controls.add('typeSelector')  ;
myMap.controls.remove('trafficControl');
myMap.controls.remove('searchControl');
var myCollection = new ymaps.GeoObjectCollection();
var myPlacemark = new ymaps.Placemark(
myMap.getCenter()
, {
 
 
iconCaption: '<?php echo $mar['title']; ?>'
}, {
preset: '<?php echo ''.$mar["stylePlacemark"].''; ?>'
 
});
myCollection.add(myPlacemark);
 
myMap.geoObjects.add(myCollection);
}
</script>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2019, 15:42
Помогаю со студенческими работами здесь

Как создать карту Google или Yandex
Как сделать карту из кэша с масштабом? Пример: карты Google или Yandex Заранее Спасибо!

Как вставить на страницу полноценную скролируемую карту от yandex или google
Как вставить на страницу полноценную скролируемую карту от yandex или google Добрые люди подскажите пожалуйста

Php передача utm меток в письме
index.php в форме &lt;input type=&quot;hidden&quot; name=&quot;source&quot; class=&quot;source&quot; value=&quot;&lt;?php echo isset($_GET) ? $_GET : '' ;?&gt;&quot; /&gt; &lt;input...

Php код для получения списка всех постов с указанием меток
Как получить список всех постов 1.С указанием даты 2.Отсортированных по дате 3.С указанием меток в которые они входит. т.е. что...

PHP, CentOS 5.5 и Mystem(от Yandex)
Как не смешно это звучит, но не понимаю, как запустить этот скрипт. &lt;?php //function normalize_string($q, $path) //{ $q =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru