Postgres 和 Google 地图标记的问题
Issue with Postgress and Google Maps Markers
我正在尝试根据 Postgres 数据库中的数据在地图上绘制点,谁能告诉我为什么这行不通。我正在绞尽脑汁想弄明白。
我正在使用这个 PHP 代码从 Postgres 数据库中提取数据,它似乎工作正常:
<?php
ini_set('memory_limit', '1024M');
// Connecting, selecting database
$dbconn = pg_connect(**MY LOGON DEETS**)
or die('Could not connect: ' . pg_last_error());
$lat1 = $_GET['lat1'];
$lat2 = $_GET['lat2'];
$lng1 = $_GET['lng1'];
$lng2 = $_GET['lng2'];
$pin_points = 'SELECT lat,lng,price,address_string FROM house_price_data_db.main where lat>= and lat<= and lng<= and lng>=';
$result_pinpoints_points = pg_query_params($dbconn,$pin_points,array($lat1,$lat2,$lng1,$lng2)) or die('Query failed: ' . pg_last_error());
$pin_points_array = array();
while($r = pg_fetch_assoc($result_pinpoints_points)) {
$pin_points_array[] = $r;
}
header("Content-type: application/json" ); // set the header to json
echo(json_encode(array_values($pin_points_array), JSON_NUMERIC_CHECK)); // this will return json
pg_close($dbconn);
?>
尝试使用下面概述的代码在地图上绘制点。我觉得我的 Javascript 有一个 error/issue,但我想不通:
var lat1=55.55;
var lat2=56.05;
var lng1=8.00;
var lng2=8.45;
function setMarkers(){
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var pinpoints = JSON.parse(xmlhttp.responseText);
var marker;
var i=0;
var lat;
var lng;
var price;
var address;
var post_latlng;
var content;
for (i = 0;i<pinpoints.length;i++){
a=pinpoints[i];
lat=parseFloat(a["lat"]);
lng=parseFloat(a["lng"]);
price=parseFloat(a["price"]);
address=String(a["address_string"]);
post_latlng = new google.maps.LatLng(lat,lng);
content = "<b>Price:</b> " + price + '</br>' + "<b>Address:</b> " + address;
var marker = new google.maps.Marker({
map: map,
title: address,
position: post_latlng
});
map.setCenter(marker.getPosition());
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(marker,'click', (function(marker,content,infowindow){
return function(){
infowindow.setContent(content);
infowindow.open(map,marker);
};
})(marker,content,infowindow));
}
}
}
xmlhttp.open("GET","pinpoints.php?lat1="+lat1+"&lat2="+lat2+"&lng1="+lng1+"&lng2="+lng2,false);
xmlhttp.send();
}
出于某种原因,它不起作用,我希望该函数调用 PHP 脚本,return 一个数组,然后使用该数组的内容和 Javscript 函数在地图,点击时显示一些信息。当我使用 Firebug 时,我没有收到任何错误。非常欢迎任何有关如何解决此问题的建议。
事实证明我的代码工作正常,但我发送到数据库以测试函数的查询没有任何返回行。
我正在尝试根据 Postgres 数据库中的数据在地图上绘制点,谁能告诉我为什么这行不通。我正在绞尽脑汁想弄明白。
我正在使用这个 PHP 代码从 Postgres 数据库中提取数据,它似乎工作正常:
<?php
ini_set('memory_limit', '1024M');
// Connecting, selecting database
$dbconn = pg_connect(**MY LOGON DEETS**)
or die('Could not connect: ' . pg_last_error());
$lat1 = $_GET['lat1'];
$lat2 = $_GET['lat2'];
$lng1 = $_GET['lng1'];
$lng2 = $_GET['lng2'];
$pin_points = 'SELECT lat,lng,price,address_string FROM house_price_data_db.main where lat>= and lat<= and lng<= and lng>=';
$result_pinpoints_points = pg_query_params($dbconn,$pin_points,array($lat1,$lat2,$lng1,$lng2)) or die('Query failed: ' . pg_last_error());
$pin_points_array = array();
while($r = pg_fetch_assoc($result_pinpoints_points)) {
$pin_points_array[] = $r;
}
header("Content-type: application/json" ); // set the header to json
echo(json_encode(array_values($pin_points_array), JSON_NUMERIC_CHECK)); // this will return json
pg_close($dbconn);
?>
尝试使用下面概述的代码在地图上绘制点。我觉得我的 Javascript 有一个 error/issue,但我想不通:
var lat1=55.55;
var lat2=56.05;
var lng1=8.00;
var lng2=8.45;
function setMarkers(){
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var pinpoints = JSON.parse(xmlhttp.responseText);
var marker;
var i=0;
var lat;
var lng;
var price;
var address;
var post_latlng;
var content;
for (i = 0;i<pinpoints.length;i++){
a=pinpoints[i];
lat=parseFloat(a["lat"]);
lng=parseFloat(a["lng"]);
price=parseFloat(a["price"]);
address=String(a["address_string"]);
post_latlng = new google.maps.LatLng(lat,lng);
content = "<b>Price:</b> " + price + '</br>' + "<b>Address:</b> " + address;
var marker = new google.maps.Marker({
map: map,
title: address,
position: post_latlng
});
map.setCenter(marker.getPosition());
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(marker,'click', (function(marker,content,infowindow){
return function(){
infowindow.setContent(content);
infowindow.open(map,marker);
};
})(marker,content,infowindow));
}
}
}
xmlhttp.open("GET","pinpoints.php?lat1="+lat1+"&lat2="+lat2+"&lng1="+lng1+"&lng2="+lng2,false);
xmlhttp.send();
}
出于某种原因,它不起作用,我希望该函数调用 PHP 脚本,return 一个数组,然后使用该数组的内容和 Javscript 函数在地图,点击时显示一些信息。当我使用 Firebug 时,我没有收到任何错误。非常欢迎任何有关如何解决此问题的建议。
事实证明我的代码工作正常,但我发送到数据库以测试函数的查询没有任何返回行。