2

我想使用谷歌地图显示页面上两个地方之间的距离。

所以我已经找到了如何编写 URL,但我不知道如何解码响应并在我的网站上显示?这是我到目前为止所拥有的:

string distancematrix = "http://maps.googleapis.com/maps/api/distancematrix/json?        origins=34746+Florida&destinations=Universal+Studios+Florida|Orlando+Internation+Airport&mode=driving&units=imperial&sensor=false";
Json.Write(distancematrix, Response.ToString);

我可以使用@ 命令将每个结果放入页面吗?

谢谢,加文

4

1 回答 1

0

这是一个(简化的)示例 cshtml 页面,它从外部文件而不是外部站点获取数据,但它可能会对您有所帮助:

@{
    var json = File.ReadAllText(Server.MapPath("~/TestJSON.json"));
    var data = Json.Decode(json);
}

<html>
    <head>
    </head>
    <body>
        <p>
            @data.destination_addresses <br/>
            @data.origin_addresses <br/>
            @data.rows <br/>
            @data.status
        </p>
    </body>
</html>

我不确定(因为当谈到以我不习惯看到的方式编写的 JSON 语法时,我有点笨拙),但您使用括号(即“[”和“]”)似乎暗示了使用数组?

如果您以这种方式访问​​数组,它可能看起来像这样:

@{
    var json = File.ReadAllText(Server.MapPath("~/TestJSON.json"));
    var data = Json.Decode(json);
    var i = 0;
}

<html>
    <head>
    </head>
    <body>
        <p>
            @{
                while(i < data.destination_addresses.Length)
                {
                    data.destination_addresses[i]; <br/>
                    i++;
                }
            }
        </p>
    </body>
</html>

如果这没有帮助,请告诉我,我们可以从那里开始。

于 2013-03-11T21:42:02.207 回答