Php 不显示地图和多个标记
我试着在谷歌地图上显示很多标记。在很多情况下都很好Php 不显示地图和多个标记,php,javascript,html,google-maps,google-maps-api-3,Php,Javascript,Html,Google Maps,Google Maps Api 3,我试着在谷歌地图上显示很多标记。在很多情况下都很好 我显示一个标记 我写了不同标记的GPS定位 我有一个包含经度、纬度值的数据库 我想将这些值显示为地图上的标记 这里是一个尝试,但不起作用,请帮助我,我已经花了一整天:/ <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <titl
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>multi-marqueurs</title>
<script src="http://maps.google.com/maps/api/js?sensor=false"
type="text/javascript"></script>
</head>
<body>
<? php
$connexion=mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("project",$connexion) or die(mysql_error());
$result = mysql_query("SELECT lattitude,longitude FROM intervenantconn ");
$listeDesPoints='';
while($row = mysql_fetch_array($result)){
if($listeDesPoints!='') $listeDesPoints.=',';
$listeDesPoints.='['.$row['lattitude'].','.$row['longitude'].']';
}
mysql_close($connexion);
?>
<div id="map" style="width: 600px; height: 550px;"></div>
<script type="text/javascript">
var listedespoints=[
<? php echo $listeDesPoints; ?>
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: new google.maps.LatLng(47.4,1.6),
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
},
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.SMALL,
position: google.maps.ControlPosition.TOP_RIGHT
},
scaleControl: true,
streetViewControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < liste_des_points.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(liste_des_points[i][1], liste_des_points[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
</script>
</body>
</html>
多侯爵
绝望=[
];
var map=new google.maps.map(document.getElementById('map'){
缩放:6,
中心:新google.maps.LatLng(47.4,1.6),
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单
},
导航控制:对,
导航控制选项:{
样式:google.maps.NavigationControlStyle.SMALL,
位置:google.maps.ControlPosition.TOP\u右
},
scaleControl:对,
街景控制:错误,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var infowindow=new google.maps.infowindow();
var标记,i;
对于(i=0;i
1)正如@mauno-v告诉你的那样,你使用列出点而不是列出点来循环
2) 在循环中,您使用第二个和第三个条目liste des_points[i][1],liste des_points[i][2]
,而您只创建了两个条目
3) 在单击事件时,使用未定义位置的位置[i][0]
因此,创建一个包含三个条目的列表[‘位置名称’、‘纬度’、‘经度’]
,或者更改索引和变量名称
见下文:
<?
error_reporting(E_ALL);
ini_set('error_reporting','on');
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>multi-marqueurs</title>
<script src="http://maps.google.com/maps/api/js?sensor=false"
type="text/javascript"></script>
</head>
<body>
<?php
/*$connexion=mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("project",$connexion) or die(mysql_error());
$result = mysql_query("SELECT lattitude,longitude FROM intervenantconn ");
$listeDesPoints='';
while($row = mysql_fetch_array($result)){
if($listeDesPoints!='') $listeDesPoints.=',';
$listeDesPoints.='['.$row['lattitude'].','.$row['longitude'].']';
}
mysql_close($connexion);*/
$listeDesPoints='[\'Location 1\',47.45,2],[\'Location 2\',47.46,1.6],[\'Location 2\',47.47,1]';
?>
<div id="map" style="width: 600px; height: 550px;"></div>
<script type="text/javascript">
var liste_des_points=[
<?php echo $listeDesPoints; ?>
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: new google.maps.LatLng(47.4,1.6),
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
},
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.SMALL,
position: google.maps.ControlPosition.TOP_RIGHT
},
scaleControl: true,
streetViewControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < liste_des_points.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(liste_des_points[i][1], liste_des_points[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(liste_des_points[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
</script>
</body>
</html>
多侯爵
var liste_des_点=[
];
var map=new google.maps.map(document.getElementById('map'){
缩放:6,
中心:新google.maps.LatLng(47.4,1.6),
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单
},
导航控制:对,
导航控制选项:{
样式:google.maps.NavigationControlStyle.SMALL,
位置:google.maps.ControlPosition.TOP\u右
},
scaleControl:对,
街景控制:错误,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var infowindow=new google.maps.infowindow();
var标记,i;
对于(i=0;i
您是否注意到您正在尝试循环liste des_points而不是ListedSpoints?另外,您是否正在查看javascript控制台?这会给您带来一些错误吗?:)未捕获的语法错误:意外标记<:////显示var\u转储($listedspoints)代码>mysql\u关闭前($connexion);对不起,我是j2ee研究者,这是不是意味着我放了一个echo变量转储($listedspoints)?是并显示结果var\u dump($listedspoints)代码>仍然是“uncaughtsyntaxerror:uncontractedtoken<”,对于静态位置,我可以获得所有标记。但是从mysql表:/需要我一整天:“(…我更改你告诉我要更改的所有内容(循环,静态列表)