0

我完全被这个难住了。它可能是如此简单,以至于我没有看到它。

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

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

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

其中 [wkt_geometry] 是 url 编码的 OGC 众所周知的文本点或多边形几何。空间参考系统是 Google 和 Bing 使用的 Spherical Mercator:EPSG 3785 / 3857 / 900913。

服务器响应是一个 JSON 编码的对象,在成功的情况下看起来像: {"status": "ok", "parcel_count": [number of matching parcels], "txn_id":"[transaction id string]" }

或者在失败的情况下:{"status":"error","error_message":"[error message string]"}

例如,要在位于 1400 University Blvd, Birmingham, AL 的地块中的坐标 (-9663031.13, 3962292.03) 处执行点查询,请形成一个点字符串:

点(-9663031.13、3962292.03)

然后对其进行urlencode并作为“spatial_intersect”值传递:http: //EXAMPLEDDOMAIN.com/api/start_parcels_txn?client=t3vDwH&spatial_intersect=POINT( -9663031.13%203962292.03)

服务器的响应是:{"status":"ok","parcel_count":1,"txn_id":"sADaOswk3DlfvCLDEFWu7p3Sv"}

要执行与前一个地块和其他两个地块相交的矩形查询,矩形的左下角坐标:(-9663128.4741915, 3962254.4093738) 和右上角坐标:(-9663033.5250705, 3962386.9798447) 形成一个多边形字符串:POLYGON((-91563128.474 3962254.4093738,-9663128.4741915 3962386.979847,-9663033.5250705 3962386.979847

Then urlencode it and pass as the "spatial_intersect" value : 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)) 来自服务器的响应是: {"status":"ok","parcel_count":3,"txn_id":"9skFh7PNdZYJgXyAgDnRXrIWJ"}

我希望能够有一个带有 HTML 表单的用户输入字段(如邮政编码、地址等),然后我希望能够在类似于上面示例的外部网站上搜索它并在同一页。我很难找到在线资源来解决这个问题,而且我不是一个编码员(更多的是系统管理员),所以我有点卡在这里。我可以理解代码,但不确定如何实现。

这可以用 Javascript、HTML、PHP 来完成,没关系我试图简单地解决这个问题,如果它存在,一个例子可能会有所帮助。如果有人对此有任何见解,将不胜感激!

4

1 回答 1

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>
于 2013-05-16T03:04:04.057 回答