【问题标题】:how to import google fusion tables into mysql to draw a polygon on google map?如何将谷歌融合表导入mysql以在谷歌地图上绘制多边形?
【发布时间】:2013-11-13 17:24:50
【问题描述】:

拥有这个csv file,我希望将它导入我的 MySQL 数据库中,只需键入邮政编码即可绘制我想要的所有多边形。 在这个文件中我有

  • 邮政编码
  • 坐标列表(我的想法是使用所有坐标来绘制准确的多边形
  • 一个名为“区域”的字段(我不知道如何使用此信息)

我的第一个问题是如何解析这个文件以将我的数据库中的数据保存为 3 列

|邮编|纬度|经度

你能帮忙解决这个问题吗?或者如果你知道的话建议我一个更好的方法。

谢谢。

编辑:我尝试使用此php代码编辑每次字符串

$fname = "uk.csv";
$fhandle = fopen($fname,"r");
$content = fread($fhandle,filesize($fname));

$content = str_replace('"<MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>', '', $content);

$fhandle = fopen($fname,"w");
fwrite($fhandle,$content);
fclose($fhandle);

但这个文件是同质的,因为并非所有行都以相同的字符串开头

<MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>

但也只有

<Polygon><outerBoundaryIs><LinearRing><coordinates>

【问题讨论】:

    标签: php mysql regex google-maps-api-3 google-fusion-tables


    【解决方案1】:

    这不仅仅是一个字符串,它还是一个有效的 XML。

    使用 DOM 方法解析字符串。

    简单示例:

      //create DOMDocument
    $doc=new DOMDocument();
      //load the source from string
    $doc->loadXML('<MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>0.167014,51.79976,0.0 0.167634,51.79976,0.0 0.177091,51.796733,0.0 0.181105,51.793738,0.0</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry>');
      //fetch the coordinates-nodes
    $coords=$doc->getElementsByTagName('coordinates');
      //get the content of the first <coordinates/>
    echo $coords->item(0)->nodeValue;
      //returns:
      //0.167014,51.79976,0.0 0.167634,51.79976,0.0 0.177091,51.796733,0.0 0.181105,51.793738,0.0
    

    【讨论】:

    • 感谢您的回答@Dr.Molle,但问题不是所有行都以“MultiGeometry”标签开头:有些行以“Poligon”而不是“MultiGeometry”开头
    • 不管怎么开始,例子直接访问&lt;coordinates/&gt;-nodes
    • 谢谢!我试试你的解决方案
    • 我无法正确解析文件。我有一个名为“uk.csv”的文件。我试图把它放在 loadXML() 中,但它不起作用。我的意图是解析文件以拥有,例如在我最初的帖子中,这种类型的表 |postcode|latitude|longitude foreach postcode,显然,我可以拥有更多的纬度/经度
    • 文件包含 CSV,使用fgetcsv 提取行中的列。当然,您有多个 LatLng,多边形由多个点定义。您如何期望能够通过单个点绘制多边形?
    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    相关资源
    最近更新 更多