Если я правильно понял ваш вопрос, geocode
- это переменная PHP, и вы хотите передать ее в вызов функции JavaScript.Если это так, вам нужно echo
вывести значение переменной PHP:
new google.maps.LatLng(<?php echo($geocode); ?>);
Однако , обратите внимание, что конструктор LatLng
ожидает2 аргумента типа Number (и необязательный логический аргумент), и вы пытаетесь передать только один аргумент.Хотя, возможно, я совершенно неправильно понял ваши намерения.
Редактировать (см. Комментарии)
Я не заметил, что вы передаете geocode
в качестве аргумента initializeGM
функция.Если вы на самом деле пытались передать переменную PHP в эту функцию, вам нужно изменить вызов функции JavaScript, чтобы использовать переменную PHP:
initializeGM(<?php echo($geocode); ?>);
Приведенный выше абзац «однако» по-прежнему применим.Ваш код может выдать ошибку, так как lng
будет undefined
в функции конструктора LatLng
.
Отредактируйте снова (см. Отредактированный вопрос)
То, что у вас есть, на первый взгляд кажется, что это должно привести к чему-то вроде этого (как вы сказали, что geocode
содержит строку):
<body onload="initializeGM('somelat,somelng');">
В теории нет ничего плохого (строка будет передана в initializeGM
), но проблема в том, что функция ожидает два аргумента типа Number, а не один аргумент типа String:
<body onload="initializeGM(100, 200);"> <!--Use real lat-lng values here!-->
Это потребует изменения функции JavaScript:
function initializeGM(lat, lng) { //2 arguments
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(lat, lng), //Pass 2 arguments to constructor
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}