1

SQL データベースにある経度と緯度を使用してカスタム Google マップを作成しようとしています。したがって、これらの結果をジオコーダーの jquery コードに直接配置しようとしています。しかし、それは機能していません。誰も私がこれを行う方法を知っていますか?? 可能な限りすべてを調べましたが、答えが見つかりません。よろしくお願いします。これが私のコードです:

<script type='text/javascript'>//<![CDATA[ 

var map;
var global_markers = []; 
[<?php 
include 'admin/dbconn.php';

$getLoc = mysql_query("SELECT * FROM EanHotels WHERE City = 'Acapulco'") or die(mysql_error());
while($row = mysql_fetch_array($getLoc)){
    $name = $row['name'];
    $lat = $row['Latitud'];
    $lon = $row['Longitude'];
    $address = $row['Address1'];
    echo $lat;
    echo $lon;

?>   
var markers = [[<?php echo $lat ?>, <?php echo $lon ?>, '<?php echo $name ?>'], <?php } ?>
];


var infowindow = new google.maps.InfoWindow({});

function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(40.77627, -73.910965);
    var myOptions = {
        zoom: 1,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    addMarker();
}

function addMarker() {
    for (var i = 0; i < markers.length; i++) {
        // obtain the attribues of each marker
        var lat = parseFloat(markers[i][0]);
        var lng = parseFloat(markers[i][1]);
        var trailhead_name = markers[i][2];

        var myLatlng = new google.maps.LatLng(lat, lng);

        var contentString = "<html><body><div><p><h2>" + trailhead_name + "</h2></p></div></body></html>";

        var marker = new google.maps.Marker({
            position: myLatlng,
            map: map,
            title: "Coordinates: " + lat + " , " + lng + " | Trailhead name: " + trailhead_name
        });

        marker['infowindow'] = contentString;

        global_markers[i] = marker;

        google.maps.event.addListener(global_markers[i], 'click', function() {
            infowindow.setContent(this['infowindow']);
            infowindow.open(map, this);
        });
    }
}

window.onload = initialize;
//]]>  

</script>
4

1 に答える 1

1

markers変数に対するこのスクリプトの出力を確認しましたか? これは、フォーマットされた数値出力に何かがあるようです。

JavaScript は、ピリオドを小数点として使用する国際形式の数値を想定しています: 10.2

一部の場所では、サーバーが小数点記号としてコンマを使用するように構成されているため、スクリプトの出力は、小数点以下の桁数ではなく、数値の配列を返します。

[[ 1,00012, 1,45678, 'name' ]]

markersまた、変数宣言の最後、閉じ角括弧の前に余分なコンマがあります]

于 2012-05-20T04:25:36.893 に答える