我正在尝试为我的网页加载一些标记到谷歌地图。
我在数据库中有所有标记,我通过php脚本获取它们。此脚本将数据库中的所有数据打印为json。像这样:
<?php
require_once("phpsqlajax_dbinfo.php"); //info for DB connection
// Opens a connection to a MySQL server
$connection=mysql_connect ('localhost', $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT coordY, coordX FROM contenedor WHERE peso = 12";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
$x = 0;
while ($row = @mysql_fetch_assoc($result)){
$data[$x] = array("lat" => $row['coordY'], "lng" => $row['coordX']);
$x++;
}
echo json_encode($data);
?>
我的json文件应如下所示: [{ “LAT”: “A”, “LNG”: “B”},{ “LAT”: “C”, “LNG”: “d”},{ “LAT”: “E”, “LNG”: “F”}] //字符是lat和long ...
之后,在其他文件(我的index.html)中,我创建了地图,如:
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(X, Y), 13); //X and Y are my lat and long
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
...
我想创建一个名为addMarket的函数来加载我的所有标记。但我无法从javascript获取该文件的信息。我喜欢这样的事情:
for (var i = 0;i < file.length; i += 1) {
var lat = file[i].lat;
var lon = file[i].lng;
addMarker(lat,lon);
};
function addMarker(lat,lng){
var latlng = new google.maps.LatLng(lat,lng);
var marker = new google.maps.Marker({position: latlng, map: map});
但我不知道如何读取值或将所有值都放在数组中。
有什么想法吗?
我的其他问题是:我在观看地图时是否可以上传标记?例如,如果我的一个标记在观看期间发生变化,我想获得新值(例如,改变颜色..)我在初始化函数中有addMarker函数,我应该把它放到外面吗?
谢谢!
答案 0 :(得分:0)
您必须为json指定一个名称,以便JS可以访问它,例如:
echo 'file='.json_encode($data),';';