2

それで、データベースからx座標とy座標を取得し、それらをGoogleマップに表示する方法について知らされた後、私は仕事に行きました。したがって、mySQLデータベースとの接続を確立するには、次のように記述します。

<?php
  $server     = '132.3.2.1.';
  $username   = 'you';
  $password   = 'notyou';
  $database   = 'youapp';
  $dsn        = "mysql:host=$server;dbname=$database";

  (This is all made up)

データベースから座標を取得してJSON文字列に入れるために、次のように記述しました。

<?php
  include 'config.php';
  try {
    $db = new PDO($dsn, $username, $password);
    $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    $sth = $db->query("SELECT * FROM youapp");
    $youapp = $sth->fetchAll();
    echo json_encode( $youapp );
  } catch (Exception $e) {
    echo $e->getMessage();
  }

今までコーディングしてきたことが正しいと確信しています。しかし、Googleマップの部分についてはよくわかりません。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta name="viewport" content="width=device-width; height=device-height; user-scalable=no" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Beer Me</title>
    <link rel="stylesheet" href="/master.css" type="text/css" media="screen" />
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
    var map;
    function init() {
      var mapOptions = {
        zoom: 13,
        center: center,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      }
      map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
      makeRequest('get_locations.php', function(data) {
        var data = JSON.parse(data.responseText);
        for (var i = 0; i < data.length; i++) {
          displayLocation(data[i]);
        }
      });
    }
    function makeRequest(url, callback) {
      var request;
      if (window.XMLHttpRequest) {
        request = new XMLHttpRequest();
      // IE7+, Firefox, Chrome, Opera, Safari
      } else {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      // IE6, IE5
      }
      request.onreadystatechange = function() {
        if (request.readyState == 4 && request.status == 200) {
          callback(request);
        }
      }
      request.open("GET", url, true);
      request.send();
    }
  </script>
</head>
<body onload="init();">
  <div id="map_canvas" style="width:400px; height: 400px;"></div>
</body>
</html>

したがって、この関数makerequestは標準のAjax呼び出しです。しかし、Googleマップで結果を表示する方法がわかりません。makerequest誰かが私のコードを見て私のデータベースとの接続を確立し、Googleマップでの結果を表示する方法についてアドバイスや何かを与えることができれば、それは大いにありがたいです。

4

2 に答える 2

2

関数が欠落していることを除いて、すべてが良さそうですdisplayLocation。そこにこれを追加するだけです:

function displayLocation(item) {
    var marker = new google.maps.Marker({
        // might need to change item.lat/item.lng
        //  to match the column name in your DB
        position: new google.maps.LatLng(item.lat, item.lng),
        map: map
    });
}
于 2012-09-06T01:03:39.550 に答える
0

これを試して。

function displayLocation(item) {
    var marker = new google.maps.Marker({
        // might need to change item.lat/item.lng
        //  to match the column name in your DB
        position: new google.maps.LatLng(item.lat, item.lng),
        map: map
    });
}
于 2017-12-06T09:47:05.880 に答える