bir arama çıktı. Buradaki bir şey benim uygulamamda, bir etkinliğin kullanıcıların mevcut konumlarını veritabanına gönderdiği ve bu konumu kullanarak veritabanında, bu tablonun diğer kullanıcı konumlarından oluştuğu, bu değerleri getirdiğim başka bir tabloyu işaret ettiğidir. şimdi yapmak istediğim, kullanıcıların mevcut konumlarını kullanmak ve hesaplamak isteyen diğer kullanıcılara başvurmak ve en yakın kullanıcıyı seçmek yerine, ileriye gittim ve bir .php dosyası yaptım. ve web tarayıcısında çalıştırıldığında bana doğru ans gösterir. ama uygulamada çalışmıyor gibi görünüyor. Eğer bu computaton bir javascript kullanır yapar, php dosyası tat aklınızda. Bu, en yakın kullanıcıyı bulabilen async görevimde aradığım php dosyasıdır. php dosyasıandroid bazı js kodu ile bir php dosyasını çağırırken, js kodu bu android uygulama yapmak ve ben bir sorun ile sıkışmış am gibi ben
<?php
$response = array();
include 'db_con.php';
// run query
$query = mysqli_query($con,"SELECT *FROM friend WHERE d_status='0'");
// look through query
if (!empty($query)) {
// check for empty result
$response["details"] = array();
while($row =mysqli_fetch_assoc($query)){
$details= array();
$details["Latitude"]= $row["d_latitude"];
$details["Longitude"]= $row["d_longitude"];
array_push($response["details"], $details);
}
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
mysqli_close($con);
$lat=15.493403;
$longi=73.820617;
?>
<!DOCTYPE html>
<html>
<body>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2 /jquery.min.js"></script>
<script type="text/javascript">
var latlon = new Array();
var map;
var lat=15.493403;//"<?php echo $lat; ?>";
var longi=73.820617;//"<?php echo $longi; ?>";
var geocoder;
var origin =new google.maps.LatLng(lat,longi);
function mapLoad(){
var data="<?php echo $response;?>";
var data_parsed = JSON.parse(data);
var resp = data_parsed['details'];
for (var i in resp) {
latlon[i]=(resp[i].Latitude+","+resp[i].Longitude);
//alert("latit:"+latlon[i]);
}
calculateDistances();
}
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
function calculateDistances() {
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix({
origins:[origin], //array of origins
destinations: latlon, //array of destinations
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback); //agettaxicoor
}
function callback(response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
} else {
//we only have one origin so there should only be one row
var routes = response.rows[0];
//need to find the shortest
var lowest = Number.POSITIVE_INFINITY;
var tmp;
var shortestRouteIdx;
var resultText = "Possible Routes: <br/>";
for (var i = routes.elements.length - 1; i >= 0; i--) {
tmp = routes.elements[i].duration.value;
resultText += "Route " + latlon[i] + ": " + tmp + "<br/>";
if (tmp < lowest) {
lowest = tmp;
shortestRouteIdx = i;
}
}
//log the routes and duration.
$('#results').html(resultText);
//get the shortest route
var shortestRoute = latlon[shortestRouteIdx];
var res = JSON.stringify(shortestRoute .split(","));
//alert(res);
location.href="atestb.php?Result=" + res; //this where the result is set.
}
}
</script>
<body onload="mapLoad();"></body>
</body>
</html>
i Tutulma hata ayıklama aracını kullandığınızda ama şimdi sorun gördüğüm olduğunu bütün kod
DOCTYPE html sonra
, async görev json çağrısının çıktısı haline gelir.
temel olarak tek yapmam gereken şey bu php dosyasını uygulamadan çağırmaktır, en yakın kullanıcıyı hesaplamalı ve en yakın kullanıcının enlem ve boylam değerini uygulamala eşleştirmelidir. dosya değişkeni veya yukarıdaki örnek gibi başka bir php dosyası değişkeni güncellemenin bunu yapmanın doğru yolu olmadığını biliyorum, bu nedenle herhangi bir yardım gud olur.
nedenini sorabilir miyim PHP kullanıyor musunuz? Artı, sanırım PHP'yi android üzerinde çalıştıramazsın. Apache + php'ye ihtiyacınız var, bu yüzden bilgisayarda çalışıyor, bir android değil. Bir php dosyası kullanmak istiyorsanız, bir sunucuya koyun ve ardından ajax kullanarak uygulamanızdan isteyin. (android uygulamasında IE kodu bir şey ifade etmiyor) – Larta
bundan bahsetmediğim için üzgünüm, ama bu dosya sunucuda. –