Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cron作业-lat&;的地理编码地址字段;mySQL数据库中的long_Mysql_Google Maps_Cron - Fatal编程技术网

cron作业-lat&;的地理编码地址字段;mySQL数据库中的long

cron作业-lat&;的地理编码地址字段;mySQL数据库中的long,mysql,google-maps,cron,Mysql,Google Maps,Cron,有人这样做过吗,或者有什么想法 我有一个不动产脚本,无论出于什么原因(谷歌地图限制,脚本本身),它只能获得一半列表的坐标。我想运行一个脚本,使lat&long字段为空。脚本将使用地址、城市、州填充lat&long字段 想法 编辑: 这里有一段来自谷歌的代码,允许您对数据库进行地理编码: 最好的方法显然是解析响应并查找返回的错误代码 发生这种情况最常见的原因是 请求发出得太快(在脚本中添加一些限制) 像ÄÜUmlauts这样的Unicode字符编码错误 顺便说一句,你所做的可能违反了谷歌的服

有人这样做过吗,或者有什么想法

我有一个不动产脚本,无论出于什么原因(谷歌地图限制,脚本本身),它只能获得一半列表的坐标。我想运行一个脚本,使lat&long字段为空。脚本将使用地址、城市、州填充lat&long字段

想法

编辑:

这里有一段来自谷歌的代码,允许您对数据库进行地理编码:


最好的方法显然是解析响应并查找返回的错误代码

发生这种情况最常见的原因是

  • 请求发出得太快(在脚本中添加一些限制)

  • 像ÄÜUmlauts这样的Unicode字符编码错误

顺便说一句,你所做的可能违反了谷歌的服务条款:

注:地理编码API只能与谷歌地图结合使用;禁止对未在地图上显示的结果进行地理编码。有关允许使用的完整详细信息,请参阅Maps API服务条款许可证限制


显然,最好的方法是解析响应并查找返回的错误代码

发生这种情况最常见的原因是

  • 请求发出得太快(在脚本中添加一些限制)

  • 像ÄÜUmlauts这样的Unicode字符编码错误

顺便说一句,你所做的可能违反了谷歌的服务条款:

注:地理编码API只能与谷歌地图结合使用;禁止对未在地图上显示的结果进行地理编码。有关允许使用的完整详细信息,请参阅Maps API服务条款许可证限制


您每天可以使用2500个地理编码。这是一个相当大的数目,但你不能只是用你的请求轰炸服务。您需要在每个请求之间提供一个延迟,否则它将开始阻塞服务


一旦您进行了地理编码,您应该将该值存储在数据库中并将其标记为地理编码,这样您就不必再次请求它。然后,随着时间的推移,您可以对其余部分进行地理编码。

每天允许您使用2500个地理编码。这是一个相当大的数目,但你不能只是用你的请求轰炸服务。您需要在每个请求之间提供一个延迟,否则它将开始阻塞服务


一旦您进行了地理编码,您应该将该值存储在数据库中并将其标记为地理编码,这样您就不必再次请求它。然后,随着时间的推移,您可以对其余部分进行地理编码。

我也有同样的要求,并最终实现了:

这将对地址进行地理编码:

<?php
require("database.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&#39;',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
return $xmlStr;
}
// 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());
}
// Select all the rows in the markers table
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}
// End XML file
echo '</markers>';
?>

这会生成地图(我也会对其进行聚类,但您应该能够将其取出):


//

我也有同样的要求,并最终实现了:

这将对地址进行地理编码:

<?php
require("database.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&#39;',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
return $xmlStr;
}
// 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());
}
// Select all the rows in the markers table
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}
// End XML file
echo '</markers>';
?>

这会生成地图(我也会对其进行聚类,但您应该能够将其取出):


//

公平地说,结果显示在地图上。对于每个地理编码地址,lat&long都会添加到数据库中,并在前端查看一个列表。请参阅我上面的编辑-谷歌实际上提供了一个php文件来完成我需要的任务-数据库中的地理编码地址。我只是需要你帮我弄清楚如何让它和我的DB@Jason每个人都一直告诉我这是对谷歌TOS的反对,但他们提供了一个如何做到这一点的教程。在我看来,他们是在批准。好吧,公平地说,结果显示在地图上。对于每个地理编码地址,lat&long都会添加到数据库中,并在前端查看一个列表。请参阅我上面的编辑-谷歌实际上提供了一个php文件来完成我需要的任务-数据库中的地理编码地址。我只是需要你帮我弄清楚如何让它和我的DB@Jason每个人都一直告诉我这是对谷歌TOS的反对,但他们提供了一个关于如何做到这一点的教程,在我看来,他们是在给予支持。这正是我想要做的——我的网站上有300个属性。大多数lat&long都是存储的-但是有些条目没有lat&long,我想运行脚本来填充缺少的值这正是我想做的-我的站点上有300个属性。大多数lat&long都是存储的-但是有些条目没有lat&long,我想运行脚本来填充缺少的值。实际上-我在这里无法获得任何帮助?真的-我在这里无法获得任何帮助?
   <script type="text/javascript">
    //<![CDATA[

    var customIcons = {
      restaurant: {
        icon: 'http://labs.google.com/ridefinder/images/mm_20_blue.png',
        shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'
      },
      bar: {
        icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png',
        shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'
      }
    };

    function load() {
      var cluster = [];
      var map = new google.maps.Map(document.getElementById("map"), {
        center: new google.maps.LatLng(53.4788, -3.9551),
        zoom: 6,
        mapTypeId: 'roadmap'
      });
var infowindow = new google.maps.InfoWindow();

      // Change this depending on the name of your PHP file
      downloadUrl("<?php bloginfo('stylesheet_directory'); ?>/phpsqlajax_genxml.php ", function(data) {
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
          var name = markers[i].getAttribute("name");
          var address = markers[i].getAttribute("address");
          var type = markers[i].getAttribute("type");
          var point = new google.maps.LatLng(
              parseFloat(markers[i].getAttribute("lat")),
              parseFloat(markers[i].getAttribute("lng")));
          var html = "<b>" + name + "</b> <br/>" + address;
          var icon = customIcons[type] || {};
          var marker = new google.maps.Marker({
            map: map,
            position: point,
            icon: icon.icon,
            shadow: icon.shadow
          });
          google.maps.event.addListener(marker, 'click', (function(marker, i) {
                        return function() {
                            infowindow.setContent(markers[i].getAttribute("name"));
                            infowindow.open(map, marker);
                        }
                    })(marker, i));
          cluster.push(marker);
        }
        var mc = new MarkerClusterer(map,cluster);
      });
    }

    function bindInfoWindow(marker, map, infoWindow, html) {
      google.maps.event.addListener(marker, 'click', function() {
        infoWindow.setContent(html);
        infoWindow.open(map, marker);
      });
    }

    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, request.status);
        }
      };

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

    function doNothing() {}

    //]]>
  </script>