Javascript 如果我直接指定lat和lng,代码会有什么问题?它会显示在附近的地方

Javascript 如果我直接指定lat和lng,代码会有什么问题?它会显示在附近的地方,javascript,php,xml,Javascript,Php,Xml,下面是一个php文件,允许用户搜索他们想要的位置 它将显示附近的位置,例如:20km和距离以及显示器制造商,这是我的php文件数据库正确,但当我直接分配它时,它会显示所有附近的位置,带有距离和标记,但如果我搜索它的值,例如着装代码,不显示任何内容,请提供帮助,因此我不知道我的代码是怎么回事。。。。请帮助调试它,我尝试了4天,但我得到了点,,,,将值直接分配给lat和lng以及半径,它将显示,但如果我搜索它是不可能的 <body style="margin:0px; padding

下面是一个php文件,允许用户搜索他们想要的位置 它将显示附近的位置,例如:20km和距离以及显示器制造商,这是我的php文件数据库正确,但当我直接分配它时,它会显示所有附近的位置,带有距离和标记,但如果我搜索它的值,例如着装代码,不显示任何内容,请提供帮助,因此我不知道我的代码是怎么回事。。。。请帮助调试它,我尝试了4天,但我得到了点,,,,将值直接分配给lat和lng以及半径,它将显示,但如果我搜索它是不可能的

     <body style="margin:0px; padding:0px;" onload="initMap()">
    <div>
         <label for="raddressInput">Search location:</label>
         <input type="text" id="addressInput" size="15"/>
        <label for="radiusSelect">Radius:</label>
        <select id="radiusSelect" label="Radius">
          <option value="50" selected>50 kms</option>
          <option value="30">30 kms</option>
          <option value="20">20 kms</option>
          <option value="10">10 kms</option>
        </select>

        <input type="button" id="searchButton" value="Search"/>
    </div>
    <div><select id="locationSelect" style="width: 10%; visibility: hidden"></select></div>
    <div id="map" style="width: 100%; height: 90%"></div>
    <script>
      var map;
      var markers = [];
      var infoWindow;
      var locationSelect;

        function initMap() {
          var sydney = {lat: -33.863276, lng: 151.107977};
          map = new google.maps.Map(document.getElementById('map'), {
            center: sydney,
            zoom: 11,
            mapTypeId: 'roadmap',
            mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}
          });
          infoWindow = new google.maps.InfoWindow();

          searchButton = document.getElementById("searchButton").onclick = searchLocations;

          locationSelect = document.getElementById("locationSelect");
          locationSelect.onchange = function() {
            var markerNum = locationSelect.options[locationSelect.selectedIndex].value;
            if (markerNum != "none"){
              google.maps.event.trigger(markers[markerNum], 'click');
            }
          };
        }

       function searchLocations() {
         var address = document.getElementById("addressInput").value;
         var geocoder = new google.maps.Geocoder();
         geocoder.geocode({address: address}, function(results, status) {
           if (status == google.maps.GeocoderStatus.OK) {
            searchLocationsNear(results[0].geometry.location);
           } else {
             alert(address + ' not found');
           }
         });
       }

       function clearLocations() {
         infoWindow.close();
         for (var i = 0; i < markers.length; i++) {
           markers[i].setMap(null);
         }
         markers.length = 0;

         locationSelect.innerHTML = "";
         var option = document.createElement("option");
         option.value = "none";
         option.innerHTML = "See all results:";
         locationSelect.appendChild(option);
       }

       function searchLocationsNear(center) {
         clearLocations();

         var radius = document.getElementById('radiusSelect').value;
         var searchUrl = 'storelocator.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
         downloadUrl(searchUrl, function(data) {
           var xml = parseXml(data);
           var markerNodes = xml.documentElement.getElementsByTagName("marker");
           var bounds = new google.maps.LatLngBounds();
           for (var i = 0; i < markerNodes.length; i++) {
             var id = markerNodes[i].getAttribute("id");
             var name = markerNodes[i].getAttribute("name");
             var address = markerNodes[i].getAttribute("address");
             var distance = parseFloat(markerNodes[i].getAttribute("distance"));
             var latlng = new google.maps.LatLng(
                  parseFloat(markerNodes[i].getAttribute("lat")),
                  parseFloat(markerNodes[i].getAttribute("lng")));

             createOption(name, distance, i);
             createMarker(latlng, name, address);
             bounds.extend(latlng);
           }
           map.fitBounds(bounds);
           locationSelect.style.visibility = "visible";
           locationSelect.onchange = function() {
             var markerNum = locationSelect.options[locationSelect.selectedIndex].value;
             google.maps.event.trigger(markers[markerNum], 'click');
           };
         });
       }

       function createMarker(latlng, name, address) {
          var html = "<b>" + name + "</b> <br/>" + address;
          var marker = new google.maps.Marker({
            map: map,
            position: latlng
          });
          google.maps.event.addListener(marker, 'click', function() {
            infoWindow.setContent(html);
            infoWindow.open(map, marker);
          });
          markers.push(marker);
        }

       function createOption(name, distance, num) {
          var option = document.createElement("option");
          option.value = num;
          option.innerHTML = name;
          locationSelect.appendChild(option);
       }

       function downloadUrl(url, callback) {
          var request = window.ActiveXObject ?
              new ActiveXObject('Microsoft.XMLHTTP') :
              new XMLHttpRequest;

          request.onreadystatechange = function() {
            if (request.readyState == 4) {
              request.onreadystatechange = doNothing;
              callback(request.responseText, request.status);
            }
          };

          request.open('GET', url, true);
          request.send(null);
       }

       function parseXml(str) {
          if (window.ActiveXObject) {
            var doc = new ActiveXObject('Microsoft.XMLDOM');
            doc.loadXML(str);
            return doc;
          } else if (window.DOMParser) {
            return (new DOMParser).parseFromString(str, 'text/xml');
          }
       }

       function doNothing() {}
  </script>
    <script async defer
    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA5fMEMuSoW1_1qchnyPvZCDt8ug4mbP98&callback=initMap">
    </script>
  </body>




<?php

require("phpsqlsearch_dbinfo.php");

// Get parameters from URL
$center_lat = $_GET["lat"];
$center_lng = $_GET["lng"];
$radius = $_GET["radius"];

// but if i assign it directly it will show up all nearby place and distance;
/* $center_lat = -33.737885  ;
      $center_lng = 151.235260;
      $radius = 20;*/


// Start XML file, create parent node
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
// Opens a connection to a mySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
  die("Not connected : " . mysql_error());
}
// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ("Can\'t use db : " . mysql_error());
}
// Search the rows in the markers table
$query = sprintf("SELECT id, name, address, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
  mysql_real_escape_string($center_lat),
  mysql_real_escape_string($center_lng),
  mysql_real_escape_string($center_lat),
  mysql_real_escape_string($radius));
$result = mysql_query($query);
$result = mysql_query($query);

if (!$result) {
  die("Invalid query: " . mysql_error());
}
header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  $node = $dom->createElement("marker");
  $newnode = $parnode->appendChild($node);
  $newnode->setAttribute("id", $row['id']);
  $newnode->setAttribute("name", $row['name']);
  $newnode->setAttribute("address", $row['address']);
  $newnode->setAttribute("lat", $row['lat']);
  $newnode->setAttribute("lng", $row['lng']);
  $newnode->setAttribute("distance", $row['distance']);
}
echo $dom->saveXML();

?>

搜索位置:
半径:
50公里
30公里
20公里
10公里
var映射;
var标记=[];
var信息窗口;
变量位置选择;
函数initMap(){
悉尼var={lat:-33.863276,液化天然气:151.107977};
map=new google.maps.map(document.getElementById('map'){
中心:悉尼,
缩放:11,
mapTypeId:“路线图”,
mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU}
});
infoWindow=new google.maps.infoWindow();
searchButton=document.getElementById(“searchButton”).onclick=searchLocations;
locationSelect=document.getElementById(“locationSelect”);
locationSelect.onchange=函数(){
var markerNum=locationSelect.options[locationSelect.selectedIndex].value;
如果(markerNum!=“无”){
google.maps.event.trigger(标记[markerNum],'click');
}
};
}
函数searchLocations(){
var address=document.getElementById(“addressInput”).value;
var geocoder=new google.maps.geocoder();
geocoder.geocode({address:address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
searchLocationsNear(结果[0]。几何体。位置);
}否则{
警报(地址+‘未找到’);
}
});
}
函数clearLocations(){
infoWindow.close();
对于(var i=0;i“+地址;
var marker=new google.maps.marker({
地图:地图,
职位:latlng
});
google.maps.event.addListener(标记'click',函数(){
setContent(html);
信息窗口。打开(地图、标记);
});
标记器。推(标记器);
}
函数createOption(名称、距离、数值){
var option=document.createElement(“选项”);
option.value=num;
option.innerHTML=名称;
locationSelect.appendChild(选项);
}
函数下载url(url,回调){
var请求=window.ActiveXObject?
新的ActiveXObject('Microsoft.XMLHTTP'):
新的XMLHttpRequest;
request.onreadystatechange=函数(){
if(request.readyState==4){
request.onreadystatechange=doNothing;
回调(request.responseText、request.status);
}
};
打开('GET',url,true);
请求发送(空);
}
函数parseXml(str){
if(window.ActiveXObject){
var doc=新的ActiveXObject('Microsoft.XMLDOM');
doc.loadXML(str);
退货单;
}else if(window.DOMParser){
return(新的DOMParser).parseFromString(str,'text/xml');
}
}
函数doNothing(){}
createElement(“标记”);
$parnode=$dom->appendChild($node);
//打开到mySQL服务器的连接
$connection=mysql\u connect(localhost,$username,$password);
如果(!$connection){
die(“未连接:”.mysql_error());
}
//设置活动mySQL数据库
$db\u selected=mysql\u select\u db($database,$connection);
如果(!$db_选中){
die(“无法使用数据库:”.mysql_
<div>
     <label for="addressInput">Search location:</label>
     <input type="text" id="addressInput" size="15"/>
     [etc.]
</div>