如何显示URL查询字符串的搜索结果?

时间:2013-05-15 01:19:46

标签: php html json search

我完全被这个问题困住了。它可能很简单,我没有看到它。

我有一个网站正在我需要搜索外部网站(目前只有一个),基于JSON查询字符串的文件,并能够从页面上的查询返回搜索结果(基本上是迷你搜索引擎)。

我需要连接的示例(我收到的电子邮件):

http://EXAMPLEDOMAIN.com/api/start_parcels_txn?client=t3vDwH&spatial_intersect= [wkt_geometry]

其中[wkt_geometry]是url编码的OGC着名文本点或多边形几何。空间参考系统是Google和Bing使用的球形墨卡托:EPSG 3785/3857 / 900913。

服务器响应是一个JSON编码的对象,在成功的情况下看起来像: {" status":" ok"," parcel_count":[匹配包裹的数量]," txn_id":" [交易id string]"}

或在失败的情况下: {" status":"错误"," error_message":" [错误消息字符串]"}

例如,要在位于美国亚利桑那州伯明翰1400 University Blvd的地块中的坐标(-9663031.13,3962292.03)处执行点查询,形成一个点串:

要点(-9663031.13,3962292.03)

然后将其编码并传递给" spatial_intersect"值http://EXAMPLEDOMAIN.com/api/start_parcels_txn?client=t3vDwH&spatial_intersect=POINT(-9663031.13%203962292.03)

来自服务器的响应是: {"状态":" OK"" parcel_count":1," txn_id":" sADaOswk3DlfvCLDEFWu7p3Sv"}

要执行与前一个宗地和另外两个宗教相交的矩形查询,使用矩形的左下角坐标:( - 9663128.4741915,3962254.4093738)和右上角坐标:( - 9663033.5250705,3962386.9798447)​​形成一个多边形串: POLYGON(( - 9663128.4741915 3962254.4093738,-9663128.4741915 3962386.9798447,-9663033.5250705 3962386.9798447,-9663033.5250705 3962254.4093738,-9663128.4741915 3962254.4093738))

然后对其进行urlencode并传递为" spatial_intersect"值http://EXAMPLEDOMAIN.com/api/start_parcels_txn?client=t3vDwH&spatial_intersect=POLYGON((-9663128.4741915%203962254.4093738,-9663128.4741915%203962386.9798447,-9663033.5250705%203962386.9798447,-9663033.5250705%203962254.4093738,-9663128.4741915%203962254.4093738)) 服务器的响应是: {"状态":" OK"" parcel_count":3," txn_id":" 9skFh7PNdZYJgXyAgDnRXrIWJ"}

我希望能够拥有带有HTML表单的用户输入字段(如邮政编码,地址等),然后我希望能够在类似于上面示例的外部网站上进行搜索,并显示结果在同一页面。我在找到解决这个问题的在线资源时遇到了麻烦,而且我不是一个程序员(更多的是系统管理员)所以我有点被困在这里。我可以理解代码,但不知道如何实现它。

这可以通过Javascript,HTML,PHP完成,但这并不重要我想要解决这个问题很简单,如果它存在,可能会有一个例子。如果有人对此有任何见解,我们将不胜感激!

1 个答案:

答案 0 :(得分:0)

这是我到目前为止的代码(可在http://s31tech.com/json访问)。我知道我还有很长的路要走,如果你为空间相交字段输入 POINT(-9663031.13%203962292.03),你会发现一个有效的答案:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>

    <body>

    <form method="post" action="<?php echo $PHP_SELF;?>">
    Address:<input type="text" name="address">
    Spatial Intersect: <input type="text" name="intersect">
    <input type="submit">
    </form>
    <br />
    Address entered was: <?php echo $_POST["address"]; ?>
    <br />
    Spatial Intersect Coordinates: <?php echo $_POST["intersect"]; ?>
    <br />
    <br />



    <?php
    $url = "http://reportallusa.com/api/start_parcels_txn?client=t3vDwH&";
    $spatial_intersect = "spatial_intersect=";
    //$coordinates = "POINT(-9663031.13%203962292.03)";
    $coordinates = $_POST["intersect"];; 
    $JSON = file_get_contents($url.$spatial_intersect.$coordinates);

    // echo the JSON (you can echo this to JavaScript to use it there)
    echo $JSON;

    // You can decode it to process it in PHP
    $data = json_decode($JSON, true);
    var_dump($data);
    ?>
    <br />
    URL Path: <br />
    <?php echo $JSON; ?>

    </body>
    </html>