Перенести число с плавающей точкой из php в js

276
14 февраля 2018, 12:29

Друзья, всем привет. Подключаю yandexmaps api на js и есть кусок кода на php, задача в общем такая. Не могу перенести число с плавающей точкой из php в js.

Код ниже, как это сделать?

 <?php 
require __DIR__.'/vendor/autoload.php';
$api = new \Yandex\Geo\Api();
// Можно искать по точке
// $api->setPoint(30.5166187, 50.4452705);
$adress = $_POST['adress'];
// Или можно икать по адресу
$api->setQuery($adress);
// Настройка фильтров
$api
    // ->setLimit(1) // кол-во результатов
    ->setLang(\Yandex\Geo\Api::LANG_RU) // локаль ответа
    ->load();
$response = $api->getResponse();
$response->getFoundCount(); // кол-во найденных адресов
$response->getQuery(); // исходный запрос
$response->getLatitude(); // широта для исходного запроса
$response->getLongitude(); // долгота для исходного запроса
// Список найденных точек
$collection = $response->getList();
foreach ($collection as $item) {
    $item->getAddress(); // вернет адрес
    $shirota = $item->getLatitude(); // широта
    $dolgota = $item->getLongitude(); // долгота
    $item->getData(); // необработанные данные
}
echo "Долгота: ";
$dolg = printf ($dolgota);
echo "$dolg";
echo '<script language="javascript">var a = '.$dolg.';</script>';

echo "<br>Широта: ";
$shir = printf ($shirota);
echo "$shir";
echo '<script language="javascript">var b = parseFloat('.$shir.');</script>';
?>
<!DOCTYPE html>
<html>
<head>
    <title>Примеры. Задание собственного изображения для метки</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!-- Если вы используете API локально, то в URL ресурса необходимо указывать протокол в стандартном виде (http://...)-->
    <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
    <!-- <script src="icon_customImage.js" type="text/javascript"></script> -->
    <script type="text/javascript">
    ymaps.ready(function () {
    var myMap = new ymaps.Map('map', {
            center: [(b), (a)], //1 - широта. 2 - долгота
            zoom: 9
        }, {
            searchControlProvider: 'yandex#search'
        }),
        // Создаём макет содержимого.
        MyIconContentLayout = ymaps.templateLayoutFactory.createClass(
            '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>'
        ),
        myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
            hintContent: 'Собственный значок метки',
            balloonContent: 'Это красивая метка'
        }, {
            // Опции.
            // Необходимо указать данный тип макета.
            iconLayout: 'default#image',
            // Своё изображение иконки метки.
            iconImageHref: 'images/myIcon.gif',
            // Размеры метки.
            iconImageSize: [30, 42],
            // Смещение левого верхнего угла иконки относительно
            // её "ножки" (точки привязки).
            iconImageOffset: [-5, -38]
        });

    myMap.geoObjects
        .add(myPlacemark)
        .add(myPlacemarkWithContent);
});
    </script>
    <style>
        html, body, #map {
            width: 400px; height: 400px; padding: 0; margin: 0;
        }
    </style>
</head>
<body>
<div id="map"></div>

</body>
</html>
Answer 1

Функция printf выводит результат на экран, и не возвращает значение. А вы пытаетесь её результат присвоить переменной, естественно там будет пустота. Возможно вам следует использовать фукцнию sprintf(), которая работает так же как и первая, но вместо вывода результата на экран, возвращает его. Но у вас можно сделать всё намного проще:

echo "<br>Широта: ";
echo $shirota;
echo '<script language="javascript">var b = parseFloat('.$shirota.');</script>';

В переменной $shirota как я понял уже содержится нужное значение, поэтому смысл использовать (s)printf-функции нету. Разве что вам нужно вывести значение в определенном формате, тогда нужно сделать как-то так:

$shir = sprintf('%.5f', $shirota);
READ ALSO
Сортировка массива с значением value

Сортировка массива с значением value

Как отсортировать массив по значению value только с allias "SpoksdachiPoisk"

266
PHP Функция log возвращает NaN

PHP Функция log возвращает NaN

Имеется следующий код:

213
Большая проблема в PHP cookie

Большая проблема в PHP cookie

очень давно мучаюсь , вообще не создаются куки , помогите , перед

166
Условие if/elseif php, как написать лучше?

Условие if/elseif php, как написать лучше?

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

231