js 调用百度地图api并在地图上进行打点添加标注

前端技术 2023/09/05 JavaScript
最近要做一个网页,具体内容是:上边有一个标题,下边分成两块,左边是地图。并且地图上有两个点,点击两个点有相应的提示信息,显示数据库里最新的两条数据信息。右边是一些文字说明。本人刚开始学习,做的也不是很好

总体效果如下所示:

 

首先新建map.php文件,代码如下
复制代码 代码如下:

<!DOCTYPE html>
<?php
/*
创建与数据库的连接
*/
$conn=mysql_connect(\"\",\"\",\"\") or die(\"can not connect to server\");
mysql_select_db(\"hdm0410292_db\",$conn);
mysql_query(\"set names utf8\");
//选择出两辆车插入的最新数据,并将两条语句存在数组里
$sql0=\"select * from car_info where carID=\'20140508\'order by id desc limit 1\";
$sql1=\"select * from car_info where carID= \'20140510\' order by id desc limit 1\";
$sql=array($sql0,$sql1);
?>
<html>
<head>
<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\" />
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>车联网信息展示</title>
<style type=\"text/css\">
html{
height:99%}
body{
height:99.9%;
width:99%;
font-family:楷体_GB2312;
font-size:25px}
#container {height: 100%}
</style>
<script type=\"text/javascript\"
src=\"http://api.map.baidu.com/api?v=1.5&ak=你申请的秘钥\"></script>
</head>
<body BGCOLOR=\"#CAFFFF\">
<div id=\"container\"></div>
<script type=\"text/javascript\">

var lon_center = 0;
var lat_center = 0;
var map = new BMap.Map(\"container\");
<!-- 添加标注的函数,参数包括,点坐标,车ID,以及数据库里的其他信息-->
function addMarker(point,index,s){
var fIcon = new BMap.Icon(\"car1.png\", new BMap.Size(55, 43), {

});
var sIcon = new BMap.Icon(\"car2.png\", new BMap.Size(55, 43), {

});
var myIcon = \"\";
// 创建标注对象并添加到地图
if(index == 20140508)
myIcon=fIcon;
else
myIcon=sIcon;
var marker = new BMap.Marker(point, {icon: myIcon});
map.addOverlay(marker);
marker.addEventListener(\"click\",function(){
var opts={width:450,height:500,title:\"详细信息\"};
var infoWindow = new BMap.InfoWindow(s,opts);
map.openInfoWindow(infoWindow,point);
});
}
<?php
//遍历数组里的两条sql语句
foreach ($sql as &$value) {
$query=mysql_query($value);
$row=mysql_fetch_array($query);
?>
var lon= <?php echo $row[longitude] ?>;
var lat= <?php echo $row[latitude] ?>;
<!-- 计算两个点的中心点,并将其作为地图初始化时的中心位置-->
lon_center += lon;
lat_center += lat;
var id=<?php echo $row[id] ?>;
var info=\"<br/>\"+\"carID: \" + \"<?php echo $row[carID]?>\" + \" <br/> \" +
\"经度: \" + \"<?php echo $row[longitude]?>\" + \" <br/> \" +
\"纬度: \" + \"<?php echo $row[latitude]?>\" + \" <br/> \" +
\"速度: \" + \"<?php echo $row[speed]?>\" + \"Km/h\" + \" <br/> \" +
\"加速度: \" + \"<?php echo $row[acceleration]?>\" + \" <br/> \" +
\"方向: \" + \"<?php echo $row[direction]?>\" + \" <br/> \" +
\"油量: \" + \"<?php echo $row[oil]?>\" + \"<br/>\" +
\"地址: \" + \"<?php echo $row[street]?>\";
var point = new BMap.Point(lon, lat);
addMarker(point,<?php echo $row[carID] ?>,info);
<?php
}
?>
<!-- 计算两个点的中心点,并将其作为地图初始化时的中心位置-->
var center = new BMap.Point(lon_center/2,lat_center/2);
map.centerAndZoom(center, 17);
map.enableScrollWheelZoom();
</script>
</body>
</html>

map.php文件主要是显示数据库里的两条信息,将这两条信息在地图上的相应的位置显示出来。

然后再建title.php,这个很简单,就是显示一个标题
复制代码 代码如下:

<!DOCTYPE html>
<html>
<head>
<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\" />
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>信息展示</title>
<style type=\"text/css\">

html{
height:100%;}
body{
height:10%;
width:99%;
font-family:楷体_GB2312;
font-size:25px}
</style>
</head>
<body BGCOLOR=\"#CAFFFF\">
<H1 ALIGN=\"CENTER\"> 信息展示 </H1>
</body>
</html>

然后在建立详细信息说明模块info.php
复制代码 代码如下:

<!DOCTYPE html>
<?php

$conn=mysql_connect(\"\",\"\",\"\") or die(\"can not connect to server\");
mysql_select_db(\"\",$conn);
mysql_query(\"set names utf8\");
$sql0=\"select * from car_info where carID=\'20140508\'order by id desc limit 1\";
$sql1=\"select * from car_info where carID= \'20140510\' order by id desc limit 1\";
$sql=array($sql0,$sql1);

function htmtocode($content){
$content=str_replace(\"\\n\", \"<br>\", str_replace(\" \", \" \", $content));
return $content;
}
?>
<html>
<head>
<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\" />
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>信息展示</title>

<style type=\"text/css\">
html{
height:90%;}
body{
height:90%;
width:90%;
font-family:楷体_GB2312;
font-size:20px}
</style>
</head>
<body BGCOLOR=\"#CAFFFF\">
<H1 ALIGN=\"CENTER\"> 信息展示 </H1>
<?php foreach ($sql as &$value) {
$query=mysql_query($value);
$row=mysql_fetch_array($query);
?>
<H2>car <?php echo $row[carID]?> 详细信息</H2>
<HR>
CAR ID: <?php echo $row[carID]?><br>
经度: <?php echo $row[longitude]?> <br>
纬度: <?php echo $row[latitude]?> <br>
速度: <?php echo $row[speed]?> Km/h <br>
加速度: <?php echo $row[acceleration]?><br>
方向: <?php echo $row[direction]?> <br>
油量: <?php echo $row[oil]?><br>
地址: <?php echo $row[street]?><br>
时间: <?php echo $row[date]?>
<?php } ?>
</body>
</html>

最后在写一个vanet.php文件,该文件主要是调用前三个文件
复制代码 代码如下:

<!DOCTYPE html>

<html>
<head>
<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\" />
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>信息展示</title>
</head>

<FRAMESET ROWS=\"10%,90%\" FRAMEBORDER=1 >
<FRAME SRC=\"title.php\"></FRAME>
<FRAMESET COLS=\"70%,30%\">
<FRAME SRC=\"map.php\">
<FRAME SRC=\"info.php\">
</FRAMESET>
</FRAMESET>
</html>

本文地址:https://www.stayed.cn/item/14474

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。