Динамические маркеры не работают с использованием новой переменной
var latitude = document.getElementById("latitude");
var longitude = document.getElementById("longitude");
var myCenter = new google.maps.LatLng(latitude, longitude);
var marker;
function initialize()
{
var mapProp = {
center: myCenter,
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
marker = new google.maps.Marker({
position: myCenter,
animation: google.maps.Animation.BOUNCE
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
var latitude
не получил значения
Здесь я получаю значения ниже идентификаторов,
<div class="map" id="googleMap" style="width:100%;height:260px;overflow:hidden;"></div>
<div id="latitude"><?php echo $itemData['130']; ?></div>
<div id="longitude"><?php echo $itemData['131']; ?></div>
В $itemData['130']
и $itemData['130']
получает значение fine,
Я не знаю, в чем моя ошибка?
4
4 answers
This code will work try this
function initialize() {
var latitude = document.getElementById("latitude").innerHTML;
var longitude = document.getElementById("longitude").innerHTML;
var myCenter = new google.maps.LatLng(latitude, longitude);
var marker;
var mapProp = {
center: myCenter,
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
marker = new google.maps.Marker({
position: myCenter,
animation: google.maps.Animation.BOUNCE
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
3
Author: Anandh Sp, 2015-02-11 12:50:13
Вы получаете объект. Используйте .innerHTML
, если вы хотите, чтобы это значение повторялось PHP:
var latitude = document.getElementById("latitude").innerHTML;
3
Author: Ghost, 2015-01-13 06:58:14
- вам нужно получить содержимое HTML-элементов div после визуализации DOM (внутри вашей функции инициализации)
- документ.getElementById возвращает HTML-элемент, вам нужно текстовое содержимое (для этого я использую функцию
nodeValue
из geoxml3, но аналогичная функциональность доступна в jQuery и других библиотеках).
Код фрагмент:
var marker;
function initialize()
{
var latitude = nodeValue(document.getElementById("latitude"));
var longitude = nodeValue(document.getElementById("longitude"));
var myCenter = new google.maps.LatLng(latitude, longitude);
var mapProp = {
center: myCenter,
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
marker = new google.maps.Marker({
position: myCenter,
animation: google.maps.Animation.BOUNCE
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
//nodeValue: Extract the text value of a DOM node, with leading and trailing whitespace trimmed
var nodeValue = function(node, defVal) {
var retStr="";
if (!node) {
return (typeof defVal === 'undefined' || defVal === null) ? '' : defVal;
}
if(node.nodeType==3||node.nodeType==4||node.nodeType==2){
retStr+=node.nodeValue;
}else if(node.nodeType==1||node.nodeType==9||node.nodeType==11){
for(var i=0;i<node.childNodes.length;++i){
retStr+=arguments.callee(node.childNodes[i]);
}
}
return retStr;
};
html, body, #googleMap {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="googleMap" style="border: 2px solid #3872ac;"></div>
<div id="latitude">45</div>
<div id="longitude">-85</div>
2
Author: geocodezip, 2015-01-13 11:30:22
Проверьте это:
var latitude = document.getElementById("latitude").innerHTML;
var longitude = document.getElementById("longitude").innerHTML;
Примечание: Это приведет к широте и долготе. Тот, который вы использовали, создаст объект, а не значение.
1
Author: prava, 2015-01-13 07:06:35