0

我正在制作一个使用数据库中的位置实现 MkMapView 的应用程序。我已经制作了一个登录系统,它可以工作:

  1. 有一个in-App Form(伪,pw),用户登录
  2. 它连接到一个 PHP 文件,
  3. 该文件向服务器发出我的请求,如果信息正确,则记录用户。

现在我想从这对夫妇一样的同一台服务器获取信息:纬度/经度或地点的地址。

我想得到这样的东西:

http://i.stack.imgur.com/x5e4n.png

我已经设置了表格,我想要的只是检索这些数据,这些数据将每 x 分钟更新一次,或者当用户点击刷新按钮时更新。

这是我的 PHP 文件请求(已编辑):

<?php


    $result = login();
    $json = array();
    $i = 0;

    while($row = mysql_fetch_array($result)){


    $row['Nom'] = mb_check_encoding($row['Nom'], 'UTF-8') ? $row['Nom'] : utf8_encode($row['Nom']);
    $row['Adresse'] = mb_check_encoding($row['Adresse'], 'UTF-8') ? $row['Adresse'] : utf8_encode($row['Adresse']);

    //Associations des resultats
        $json['locations'][$i]= array(
            'adresse' => $row['Adresse'],
            'nom' => $row['Nom'],
            'latitude' => $row['latitude'],
            'longitude' => $row['longitude']
        );  
        $i++;
    }

    //Encodage du tableau en JSON
    echo json_encode($json);
    echo "<br>";


//FONCTION
function makeSqlConnection()
{
$DB_HostName = "localhost";
$DB_Name = "DB";
$DB_User = "USER";
$DB_Pass = "PW";

    $con = mysql_connect($DB_HostName,$DB_User,$DB_Pass) or die(mysql_error()); 

        mysql_select_db($DB_Name,$con) or die(mysql_error()); 

    return $con;
}

function disconnectSqlConnection($con)
{
    mysql_close($con);
}

function login()
{
    $con = makeSqlConnection();

    $sql = "SELECT * FROM  Parking";
    $res = mysql_query($sql,$con) or die(mysql_error());


    /*while($r = mysql_fetch_assoc($res)) {
        echo $r['Adresse'] . " " . $r['Nom'];
        echo "<br>";
        $rows[] = $r;
    }*/

    disconnectSqlConnection($con);

    return $res;
}// end of Function 
?>

更新,现在可以了:

{"locations":[{"adresse":"52 Rue du Commerce, 75015 Paris","nom":"une otra cos\u00e9","latitude":"48.846481","longitude":"2.295336"}, {"adresse":"80, rue de la Convention 75015 PARIS","nom":"una cosa","latitude":"48.842136","longitude":"2.285587"}]}

我需要创建一个架构,以后可以重用于 android

4

1 回答 1

0

这是一个很好的教程:http ://www.raywenderlich.com/21365/introduction-to-mapkit-in-ios-6-tutorial


关于您的 PHP 代码:

您可以编辑 while 以显示 JSON,然后在应用程序中检索它。

$json = array();
while($row = mysql_fetch_array($result)){
    $json['locations'][] = array(
        'adresse' => $row['Adresse']. " " . $row['Nom'],
        'latitude' => HERE_LATITUDE_OF_LOCATION_FROM_DB,
        'longitude' => HERE_LONGITUDE_OF_LOCATION_FROM_DB
    );
}
$json = mb_check_encoding($json, 'UTF-8') ? $json : utf8_encode($json);
echo json_encode($json);

然后 iOS 部分与 AFNetworking:

NSURL *url = [NSURL URLWithString:@"http://yourserver.com/api/locations"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    for (NSDictionary *location in [JSON objectForKey:@"locations"]) {
        /*
         add here your location to the MKMapView using
         annotation (get lat, lon using [location objectForKey:@"latitude"];)
        */
    }
} failure:nil];
[operation start];
于 2013-04-10T22:48:41.503 回答