2016-11-11 31 views
0

我在phpadmin上创建了一个数据库,并且我已经从xml文件中提取信息到数据库,我的数据库字段由时间,纬度,经度,深度和大小组成。我有一个表格显示所有在网页上的信息,我有一个字段包含一个链接,而点击链接,它应该指示我一个谷歌地图API,它必须从数据库中提取纬度和经度信息,我有问题自动传递纬度和经度的值,任何help.here的我的代码使用href传递值

<?php 
    require('dbconnect.php'); 
    $query="SELECT * from earthquake_xml"; 
    $result= mysqli_query($dbc,$query); 
    echo "Query Executed Successfully "; 
    $numRow =mysqli_num_rows($result); 
    echo "<br> Number Of Rows:".$numRow; 
?> 
<!DOCTYPE HTML> 
<html> 
<head> 
    <style> 
    table, th, td { 
    border: 1px solid black; 
    padding:10px; 
} 
table{ 
    border-collapse: collapse; 
    text-align:center; 

} 
    </style> 
</head> 
<body> 
<table> 
    <tr> 
     <td>Time</td> 
     <td>Latitude</td> 
     <td>Longitude</td> 
     <td>Depth</td> 
     <td>Magnitude</td> 
     <td>Google Map </td> 
    </tr> 
    <?php 
    if($numRow>0) 
    { 
     while($row=mysqli_fetch_assoc($result)) 
     { 
      echo "<tr>"; 
      echo "<td>" .$row['Time'] . "</td>"; 
      echo "<td>" .$row['Latitude']. "</td>"; 
      echo "<td>" .$row['Longitude']. "</td>"; 
      echo "<td>" .$row['Depth']. "</td>"; 
      echo "<td>" .$row['Magnitude']. "</td>"; 
      echo "<td><a href='googleMap.php?longitude= '' '>Click here</a></td>"; 
      echo "</tr>"; 

     } 




    } 

    ?> 

</table> 

</body> 
</html> 

这是我googleMap.php

<!DOCTYPE HTML> 
<HTML> 
<head> 
<title></title> 
<style> 
html,body{ 
    height:100%; 
    margin:0; 
    padding:0; 
} 
#map{ 
    height:100%; 
} 
</style> 
</head> 
<body> 
<div id="map"></div> 
<script> 
function initMap(){ 
    var myLatLng={lat:-36.5806,lng:-73.6355}; 
    var map=new google.maps.Map(document.getElementById('map'),{ 
    center:myLatLng, 
    zoom:8 
    }); 

    if(navigator.geolocation){ 
     navigator.geolocation.getCurrentPosition(function(position){ 
      var pos={ 
       lat:-36.5806, 
       lng:-73.6355 
      }; 

      var marker=new google.maps.Marker({ 
       position:pos, 
       map:map, 
      }); 

      map.setCenter(pos,marker) 
     },function(){ 
      handleLocationError(true,map.getCenter()); 
     }); 
    }else{ 
     handleLocationError(false,map.getCenter) 
    } 
} 
</script> 
<script async defer 
src="https://maps.googleapis.com/maps/api/js?key=&callback=initMap"> 
</script> 
</body> 

</html> 
+0

你最好从问题中删除你的API密钥。 –

回答

0

在HTML页面中,您可以轻松地将纬度和经度作为查询字符串传递。

echo "<td><a href='googleMap.php?longitude=".$row['longitude']."&latitude=".$row['latitude']."'>Click here</a></td>"; 

要获得相同的经度和纬度正好与GET请求更新脚本。

function initMap(){ 
    var myLatLng={lat:'<?php echo $latitude ?>',lng:'<?php echo $longitude?>'}; 
    ....// so on 
} 
+0

我已经使用获取请求,但它不工作。 function initmap(){ var myLatLnh = {lat:“<?php echo $ _GET ['Latitude'];?>”, lng:“<?php echo $ _GET ['Longitude'];?>” }; 等..... @HappyCoding – fairytale

+0

@fairytale你面临什么问题 –

0

您可以直接从php使用geolocation API。

您可以调用网址是这样的:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

而且收到这样一个结构化JSON响应:

{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "1600", 
       "short_name" : "1600", 
       "types" : [ "street_number" ] 
      }, 
      { 
       "long_name" : "Amphitheatre Parkway", 
       "short_name" : "Amphitheatre Pkwy", 
       "types" : [ "route" ] 
      }, 
      { 
       "long_name" : "Mountain View", 
       "short_name" : "Mountain View", 
       "types" : [ "locality", "political" ] 
      }, 
      { 
       "long_name" : "Santa Clara County", 
       "short_name" : "Santa Clara County", 
       "types" : [ "administrative_area_level_2", "political" ] 
      }, 
      { 
       "long_name" : "California", 
       "short_name" : "CA", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "Stati Uniti", 
       "short_name" : "US", 
       "types" : [ "country", "political" ] 
      }, 
      { 
       "long_name" : "94043", 
       "short_name" : "94043", 
       "types" : [ "postal_code" ] 
      } 
     ], 
     "formatted_address" : "1600 Amphitheatre Pkwy, Mountain View, CA 94043, Stati Uniti", 
     "geometry" : { 
      "location" : { 
       "lat" : 37.4223664, 
       "lng" : -122.084406 
      }, 
      "location_type" : "ROOFTOP", 
      "viewport" : { 
       "northeast" : { 
        "lat" : 37.4237153802915, 
        "lng" : -122.0830570197085 
       }, 
       "southwest" : { 
        "lat" : 37.42101741970851, 
        "lng" : -122.0857549802915 
       } 
      } 
     }, 
     "place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA", 
     "types" : [ "street_address" ] 
     } 
    ], 
    "status" : "OK" 
} 

您可以使用curl做到这一点的呼叫。

Ref。 https://developers.google.com/maps/documentation/geocoding/start