Имам php файл, който извежда тази json данни
[{"lat":"5.92687670","lng":"116.10072270"},{"lat":"6.23331022","lng":"116.42924500"},{"lat":"47.62456131","lng":"-122.35644531"},{"lat":"47.60636520","lng":"-122.33765411"},{"lat":"47.61282349","lng":"-122.34567261"},{"lat":"47.60596085","lng":"-122.34036255"},{"lat":"47.61397552","lng":"-122.34546661"},{"lat":"47.61721420","lng":"-122.32658386"}]
това е php кодът за резултата по-горе (genjson.php):
<?php
require("connect.php");
$link = mysqli_connect("localhost", "$username", "$password", "$database");
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
mysqli_select_db($link,"senangbah");
$var = array();
$sql = "SELECT `lat`, `lng` FROM markers";
$result = mysqli_query($link, $sql);
while($obj = mysqli_fetch_object($result)) {
$var[] = $obj;
}
header("Content-Type: application/json");
echo json_encode($var);
?>
и това е javascript за картата
function initMap() {
var latlng = new google.maps.LatLng(5.5117338, 117.0463637);
var myOptions = {
zoom: 3,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
};
var map = new google.maps.Map(document.getElementById("map"),myOptions);
$.getJSON("genjson.php", function(markers) {
for (i = 0; i < markers.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(markers[i][0], markers[i][1]),
map: map
});
}
});
}
картата се зарежда добре, но не се показват маркери? коя част правя грешно? ТК
Отговори:
1 за отговор № 1Грешката е в това изявление:
position: new google.maps.LatLng(markers[i][0], markers[i][1]),
От всеки marker[n]
е обект, а не масив, вместо това трябва да използвате:
position: new google.maps.LatLng(markers[i].lat, markers[i].lng),
BTW имайте предвид, че е по-добре да пишете var marker = ...
отколкото просто marker = ...
за да избегнем замърсяването на глобалното пространство.