За последние 24 часа нас посетили 22854 программиста и 1145 роботов. Сейчас ищут 633 программиста ...

яндекс карты для геопозиции

Тема в разделе "PHP для новичков", создана пользователем shiyri, 16 мар 2020.

  1. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    111
    Симпатии:
    0
    Добрый день, подскажите как перенести переменные из ява скрипт в php.

    Есть пример яндекса, php файл и js.
    Как можно перенести переменные из js в php (выделил жирным), или вообще можно эту конструкцию только в php исполнять, для того что б с результатом запроса из базы данных не перекидывать в js.

    PHP:
    1. <!DOCTYPE html>
    2. <?php
    3. $mysqli = new mysqli('127.0.0.1', 'user', '123456', 'gpstracker');
    4. $sql ="select gd211.TIMESTAMP_UTC, gd211.LATITUDE, gd211.LONGITUDE, gd211.SPEED, gd211.FUEL1 from gpsdata as gd211 WHERE DI2 > 0 ORDER BY id DESC LIMIT 1;";
    5. if (!$result = $mysqli->query($sql)) {exit;}
    6. $data = $result->fetch_assoc();
    7. $LATITUDE = $data['LATITUDE'];
    8. $LONGITUDE = $data['LONGITUDE'];
    9. $fuel= $data['FUEL1'];
    10. $speed= $data['SPEED'];
    11. $mysqli->close();
    12. ?>
    13.  
    14. <html>
    15. <head>
    16.     <title>БашУралМонолит</title>
    17.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    18.     <script>
    19.     var LATITUDE = <?php echo $LATITUDE ?>;
    20.     var LONGITUDE = <?php echo $LONGITUDE ?>;
    21.     var fuel = <?php echo $fuel ?>;
    22.     var speed = <?php echo $speed ?>;
    23.     </script>
    24.     <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&amp;apikey=<Яkey>" type="text/javascript"></script>
    25.     <script src="icon_sprites.js" type="text/javascript"></script>
    26.     <style>
    27.         html, body, #map {
    28.             width: 100%; height: 100%; padding: 0; margin: 0;
    29.         }
    30.     </style>
    31. </head>
    32. <body>
    33.     <div id="map"></div>
    34. </body>
    35. </html>
    Код (Javascript):
    1. ymaps.ready(init);
    2. function init () {
    3.     var myMap = new ymaps.Map('map', {
    4.             center: [55.5517, 54.9584],          
    5.             type: 'yandex#hybrid',
    6.             zoom: 7
    7.         }),  
    8.  
    9.  
    10.  
    11. От сих
    12.  
    13.  
    14.  
    15.        [B] myPlacemark1 = new ymaps.Placemark([LATITUDE, LONGITUDE], {          
    16.  
    17.             hintContent: "Ларгус",
    18.  
    19.             balloonContentHeader: "Ларгус",
    20.  
    21.             balloonContentBody:  '<img src="img/largus100b.png" height="70" width="150">' + '<br>' + '<b>Топливо: ' + fuel/100 + ' литров,<br>Скорость: ' + speed +' км/ч,<br>Датчик1: 12345 арбузов </b> <br/>'      
    22.  
    23.         }, {
    24.  
    25.             iconLayout: 'default#image',          
    26.  
    27.             iconImageHref: 'img/largus100.png',
    28.  
    29.             iconImageSize: [75, 31],
    30.  
    31.             iconImageOffset: [0, 0],
    32.  
    33.             hideIconOnBalloonOpen: false,
    34.  
    35.         }),
    36.         myPlacemark2 = new ymaps.Placemark([55.56, 54.96], {
    37.  
    38.             hintContent: "Копейка",
    39.  
    40.             balloonContentHeader: "Копейка",
    41.  
    42.             balloonContentBody:  '<img src="img/ac577b.png" height="90" width="150">' + '<br/>' + '<b>Топливо: ' + fuel/100 + ' литров,<br>Скорость: ' + speed +' км/ч,<br>Датчик1: 12345 арбузов </b> <br/>'         }, {
    43.  
    44.             iconLayout: 'default#image',          
    45.  
    46.             iconImageHref: 'img/ac577.png',
    47.  
    48.             iconImageSize: [75, 31],
    49.  
    50.             iconImageOffset: [0, 0],
    51.  
    52.             hideIconOnBalloonOpen: false,
    53.  
    54.         }),
    55.  
    56.         myPlacemark3 = new ymaps.Placemark([55.5517, 54.9584], {
    57.  
    58.             hintContent: "Лада 07",
    59.  
    60.             balloonContentHeader: "Лада 07",
    61.  
    62.             balloonContentBody:  '<img src="img/ac577b.png" height="90" width="150">' + '<br>' + '<b>Топливо: ' + fuel/100 + ' литров,<br>Скорость: ' + speed +' км/ч,<br>Датчик1: 12345 арбузов </b> <br/>'         }, {
    63.  
    64.             iconLayout: 'default#image',          
    65.  
    66.             iconImageHref: 'img/ac577.png',
    67.  
    68.             iconImageSize: [75, 31],
    69.  
    70.             iconImageOffset: [0, 0],
    71.  
    72.             hideIconOnBalloonOpen: false,
    73.  
    74.         });[/B]
    75.  
    76.  
    77.  
    78. до сих
    79.  
    80.  
    81.  
    82.  
    83.     myMap.geoObjects.add(myPlacemark1)
    84.         .add(myPlacemark2)
    85.         .add(myPlacemark3);
    86. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    1. Если вы хотите отображать на карте мониторинг геопозиций транспорта в реальном времени, то сначала прочтите - https://tech.yandex.ru/maps/jsapi/doc/2.1/terms/index-docpage/ п.6
    2. Схема такая. html документ с ЯндексКартой, там работает таймер (например 1 раз в минуту, который ajax запросом идет в в БД (через php в вашем случае) и получает координаты, отображает эти координаты на карте
    3. Реализация п 2, так же должна соблюдать все п из ссылки в п1, в том числе на кол-во запросов в сутки

    Если будет именно диспетчеризация, мониторинг транспорта - даже если сначала будет работать, как только дойдет до проверки на выполнение пунктов соглашения - от 1 часа до пары недель - доступ к api будет заблокирован Яндексом (попадал в такую ситуацию, знаю)
     
  3. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    111
    Симпатии:
    0
    Это будет сайт исключительно локальный для нужд отдела из 5 человек, мение 100 запросов в неделю.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    тогда п. 2
    но 100 запросов неделю непонятно.....
    что вы вообще хотите в этом случае сделать,
    показ координат водителя только в момент показы страницы?
     
  5. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    111
    Симпатии:
    0
    Есть недвижимые механизмы и 10 машин, с терминалов (Омником) данные прилетают в MSQL, и там храняться, в момент Х, необходимо глянуть, где находятся это все хозяйство для оценки масштаба трагедии, и показания датчиков не движимых механизмов в случае аларма..... 100 запросов в неделю это я погорячился, в самом редком случае так будет.....
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    а в чем вопрос тогда?

    у вас и так из php -> js передается все
    HTML:
    1.     var LATITUDE = <?php echo $LATITUDE ?>;
    2.     var LONGITUDE = <?php echo $LONGITUDE ?>;
    3.     var fuel = <?php echo $fuel ?>;
    4.     var speed = <?php echo $speed ?>;
     
  7. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    111
    Симпатии:
    0
    Дак вот щас хочу вывести след как машина ехала, из точек с запроса, т.е. надо передать не пару переменных а весь запрос.
    И попал в ступор, как на js его распарсить...

    PHP:
    1. <!DOCTYPE html>
    2. <?php
    3. $mysqli = new mysqli('127.0.0.1', 'user', '123456', 'gpstracker');
    4. $sql ="SELECT `TIMESTAMP`, `LONGITUDE`,`LATITUDE`,`FUEL1` FROM gpsdata WHERE `TIMESTAMP` BETWEEN '2020-03-06' AND '2020-03-07' ORDER BY `TIMESTAMP` ASC;";
    5. $data = $result->fetch_assoc();
    6. $mysqli->close();
    7. ?>
    8.  
    9. <html>
    10. <head>
    11.     <title>БашУралМонолит</title>
    12.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    13.     <script>
    14.     var data = <?php echo $data ?>;  
    15.     </script>
    16.     <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&amp;apikey=<Яkey>" type="text/javascript"></script>
    17.     <script src="icon_sprites.js" type="text/javascript"></script>
    18.     <style>
    19.         html, body, #map {
    20.             width: 100%; height: 100%; padding: 0; margin: 0;
    21.         }
    22.     </style>
    23. </head>
    24. <body>
    25.     <div id="map"></div>
    26. </body>
    27. </html>
     
  8. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Знаете как массивы в js выглядят?
    Можете просто как json_encode($data);
    Вывести и дальше в js делать что хотите
     
  9. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    111
    Симпатии:
    0
    Подскажите пожалуйста, как записать одним запросом, с while :)
    вот так работает:
    PHP:
    1. <!DOCTYPE html>
    2. <?php
    3. $mysqli = new mysqli('127.0.0.1', 'user', '123456', 'gpstracker');
    4. $sql ="SELECT LONGITUDE, LATITUDE, SPEED, FUEL1 FROM gpsdata WHERE FUEL1 > 0 AND `DEVICE_ID` = 354007390 ORDER by ID desc limit 1;";
    5. if (!$result = $mysqli->query($sql)) {}
    6. $data = $result->fetch_assoc();
    7. $LATITUDE = $data['LATITUDE'];
    8. $LONGITUDE = $data['LONGITUDE'];
    9. $fuel= $data['FUEL1'];
    10. $speed= $data['SPEED'];
    11. $sql ="SELECT LONGITUDE, LATITUDE, SPEED, FUEL1 FROM gpsdata WHERE FUEL1 > 0 AND `DEVICE_ID` = 326004211 ORDER by ID desc limit 1;";
    12. if (!$result = $mysqli->query($sql)) {}
    13. $data1 = $result->fetch_assoc();
    14. $LATITUDE1 = $data1['LATITUDE'];
    15. $LONGITUDE1 = $data1['LONGITUDE'];
    16. $fuel1= $data1['FUEL1'];
    17. $speed1= $data1['SPEED'];
    18. $mysqli->close();
    19. ?>
    20.  
    21. <html>
    22. <head>
    23.     <title></title>
    24.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    25.     <script>
    26.     var LATITUDE = <?php echo $LATITUDE ?>;
    27.     var LONGITUDE = <?php echo $LONGITUDE ?>;
    28.     var fuel = <?php echo $fuel ?>;
    29.     var speed = <?php echo $speed ?>;
    30.     var LATITUDE1 = <?php echo $LATITUDE1 ?>;
    31.     var LONGITUDE1 = <?php echo $LONGITUDE1 ?>;
    32.     var fuel1 = <?php echo $fuel1 ?>;
    33.     var speed1 = <?php echo $speed1 ?>;
    34.     </script>
    35.     <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&amp;apikey=<яkey>" type="text/javascript"></script>
    36.     <script>
    37. ymaps.ready(init);
    38. function init () {
    39.     var myMap = new ymaps.Map('map', {
    40.             center: [55, 54],          
    41.             type: 'yandex#hybrid',
    42.             zoom: 7
    43.         }),      
    44.         myPlacemark1 = new ymaps.Placemark([LATITUDE, LONGITUDE], {          
    45.             hintContent: "ГАЗ Соболь",
    46.             balloonContentHeader: "ГАЗ Соболь",
    47.             balloonContentBody:  '<img src="img/sobol100b.png" height="70" width="150">' + '<br>' + '<b>Топливо: ' + fuel/10 + ' литров,<br>Скорость: ' + speed +' км/ч,<br>Гос. номер: a456ab </b> <br/>'      
    48.         }, {
    49.             iconLayout: 'default#image',          
    50.             iconImageHref: 'img/sobol100b.png',
    51.             iconImageSize: [75, 31],
    52.             iconImageOffset: [0, 0],
    53.             hideIconOnBalloonOpen: false,
    54.         }),
    55.         myPlacemark2 = new ymaps.Placemark([LATITUDE1, LONGITUDE1], {  
    56.             hintContent: "Лада Ларгус",
    57.             balloonContentHeader: "Лада Ларгус",
    58.             balloonContentBody:  '<img src="img/largus100b.png" height="90" width="150">' + '<br>' + '<b>Топливо: ' + fuel1/100 + ' литров,<br>Скорость: ' + speed1 +' км/ч,<br>Гос. номер: a123ab</b> <br/>'         }, {
    59.             iconLayout: 'default#image',          
    60.             iconImageHref: 'img/largus100b.png',
    61.             iconImageSize: [75, 31],
    62.             iconImageOffset: [0, 0],
    63.             hideIconOnBalloonOpen: false,
    64.         });;
    65.     myMap.geoObjects.add(myPlacemark1)
    66.                .add(myPlacemark2);
    67. }
    68. </script>
    69.     <style>
    70.         html, body, #map {
    71.             width: 100%; height: 100%; padding: 0; margin: 0;
    72.         }
    73.     </style>
    74. </head>
    75. <body>
    76.     <div id="map"></div>
    77. </body>
    78. </html>
    --- Добавлено ---
    запрос я сделал вот так
    Код (Text):
    1. (SELECT name_mashine.name, name_mashine.gos_numer, name_mashine.img, gpsdata.LONGITUDE, gpsdata.LATITUDE, gpsdata.SPEED, gpsdata.FUEL1 FROM name_mashine, gpsdata WHERE name_mashine.id_devise = gpsdata.DEVICE_ID and gpsdata.FUEL1 > 0 AND `DEVICE_ID` = 354007390 ORDER by gpsdata.ID desc limit 1) UNION (SELECT name_mashine.name, name_mashine.gos_numer, name_mashine.img, gpsdata.LONGITUDE, gpsdata.LATITUDE, gpsdata.SPEED, gpsdata.FUEL1 FROM name_mashine, gpsdata WHERE name_mashine.id_devise = gpsdata.DEVICE_ID and gpsdata.FUEL1 > 0 AND `DEVICE_ID` = 326004211 ORDER by gpsdata.ID desc limit 1)
     
  10. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    111
    Симпатии:
    0
    вот так чот не работает, экран пустой ошибок нет...

    PHP:
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4.     <title></title>
    5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    6.  
    7.     <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&amp;apikey=<яkey>" type="text/javascript"></script>
    8.     <script>
    9. ymaps.ready(init);
    10. function init () {
    11.     var myMap = new ymaps.Map('map', {
    12.             center: [55, 54],          
    13.             type: 'yandex#hybrid',
    14.             zoom: 7
    15.         }),
    16.         <?php
    17. $link = mysqli_connect('127.0.0.1', 'user', '123456', 'gpstracker')
    18.     or die("Ошибка " . mysqli_error($link));
    19.           mysqli_query($link,"SET CHARACTER SET 'utf8'");
    20. mysqli_query($link,"SET SESSION collation_connection ='utf8mb4_general_ci'");
    21. $query ="(SELECT name_mashine.name, name_mashine.gos_numer, name_mashine.img, gpsdata.LONGITUDE, gpsdata.LATITUDE, gpsdata.SPEED, gpsdata.FUEL1 FROM name_mashine, gpsdata WHERE name_mashine.id_devise = gpsdata.DEVICE_ID and gpsdata.FUEL1 > 0 AND `DEVICE_ID` = 354007390 ORDER by gpsdata.ID desc limit 1) UNION (SELECT name_mashine.name, name_mashine.gos_numer, name_mashine.img, gpsdata.LONGITUDE, gpsdata.LATITUDE, gpsdata.SPEED, gpsdata.FUEL1 FROM name_mashine, gpsdata WHERE name_mashutf8mb4_general_ciine.id_devise = gpsdata.DEVICE_ID and gpsdata.FUEL1 > 0 AND `DEVICE_ID` = 326004211 ORDER by gpsdata.ID desc limit 1) ";
    22. $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
    23. if ($result = mysqli_query($link, $query)) {
    24.      $table = '';
    25.     while ($row = mysqli_fetch_assoc($result)) {
    26.  
    27.    ?>  
    28.         myPlacemark1 = new ymaps.Placemark([.'row['LATITUDE'].', .'row['LONGITUDE'].'], {          
    29.             hintContent: .'row['name'].',
    30.             balloonContentHeader: .'row['name'].',
    31.             balloonContentBody:  '<img src="img/.'row['img'].'" height="70" width="150">' + '<br>' + '<b>Топливо: ' + .'row['FUEL1'].'/10 + ' литров,<br>Скорость: ' + .'row['SPEED'].' +' км/ч,<br>Гос. номер: a456ab </b> <br/>'      
    32.         }, {
    33.             iconLayout: 'default#image',          
    34.             iconImageHref: 'img/sobol100b.png',
    35.             iconImageSize: [75, 31],
    36.             iconImageOffset: [0, 0],
    37.             hideIconOnBalloonOpen: false,
    38.         }),
    39.     <?php    }
    40.     mysqli_free_result($result);
    41. }
    42. mysqli_close($link);
    43. ?>  
    44.         ;
    45.     myMap.geoObjects.add(myPlacemark1)
    46.         .add(myPlacemark2);
    47. }
    48. </script>
    49.     <style>
    50.         html, body, #map {
    51.             width: 100%; height: 100%; padding: 0; margin: 0;
    52.         }
    53.     </style>
    54. </head>
    55. <body>
    56.     <div id="map"></div>
    57. </body>
    58. </html>