0

晚上好 Stackoverflow 领主和女士们,

我正在尝试开发一个 Layar 层以在我的工作中使用,但我一开始就遇到了一些困难。这是场景

我已经下载了 Layar 为教程提供的示例代码, 这是链接

现在我没有修改任何这段代码。

我已经建立了一个名为 joejoz_layar 的数据库。在该数据库中,我导入了包含的 .SQL 文件,并创建了两个表,图层和 POI。

现在我只想看看这个东西是如何连接的以及输出是什么样的,所以我将所有包含的文件上传到我的服务器,然后前往我的盒子上的 firstTutorial_simplified.php。

这是我得到的错误:

消息:在 GetPOI 请求中未传递 layerName 参数。警告:无法修改标头信息 - 标头已由(输出从 firstTutorial_simplified.php:64 开始)在第 225 行的 firstTutorial_simplified.php {"layer":null,"hotspots":[],"errorCode":20,"errorString ":"没有找到 POI。请调整范围。"}

现在 SQL 导入确实包含一个 POI,所以我真的很困惑我在这里做错了什么。这是我修改的 config.inc.php:

  define('DBHOST', 'localhost');
  define('DBDATA', 'joejoz_layar');
  define('DBUSER', 'joejo_layar01');
  define('DBPASS', 'XXXXXXXXX');

我试图在其他地方找到答案,结果却遇到了瑞典语……我不会说的东西。与瑞典厨师无关的人可以帮助我吗?

4

2 回答 2

2

在我看来,您没有将所有必需的值传递给$_GET

例如:$_GET['layerName']$_GET['lat']$_GET['lon']$_GET['radius']

键必须与您发送到getRequestParams($keys);第 191 行的键/值数组匹配,

第 56 行firstTutorial_simplified.php匹配$keysisset($_GET[$key])因此如果缺少第 59 行,则调用异常。

这是一个返回 json 字符串但需要传递参数的 API

./firstTutorial_simplified.php?layerName=somelayer&lat=12345&lon=12345&radius=12345

直接访问脚本将调用错误,因为没有检查

所以真的你只需要做一些 isset() 检查,否则不运行代码。

于 2012-02-29T23:53:37.627 回答
0

你得到“请调整范围”的事实。并且“未找到 POI”表示它正在工作。只是对您的图层的查询没有找到范围半径内的兴趣点。数据库中的示例 POI 是位于阿姆斯特丹的 Layar 办公室。在layar测试站点上,它在谷歌地图中显示了amsterdam,但默认情况下范围不包括layar办公室的位置。如果您使用测试页面上的滑块来扩大您的范围,您可能会发现您确实找到了一个 POI。

我可能对此有误,但这是我从 firstTutorial_simplified.php 的设置 [在层测试站点上查看时] 得到的响应,如果您更改范围或在测试层上移动人员,它确实会找到 POI。我猜您的错误消息比“未找到 POI。请调整范围”更严重。我猜你的并没有说“响应验证”

Loading layer "ttguyhellowld1"...
found layer = ttguyhellowld1
Loading POIs
Loading POIs for page #1
oauth disabled
POI fwd url = http://home.exetel.com.au/ttguy/layar/firstTutorial_simplified.php?lang=en&countryCode=AU&lon=4.887339&userId=6f85d06929d160a7c8a3cc1ab4b54b87db99f74b&version=6.2&radius=1500&lat=52.377544&layerName=ttguyhellowld1&accuracy=100
Response received from provider, validating...
response code : 200
Response validated, sending it back...
oauth disabled
POI fwd url = http://home.exetel.com.au/ttguy/layar/firstTutorial_simplified.php?lang=en&countryCode=AU&lon=4.887339&userId=6f85d06929d160a7c8a3cc1ab4b54b87db99f74b&version=6.2&radius=1500&lat=52.377544&layerName=ttguyhellowld1&accuracy=100
Response received from provider, validating...
response code : 200
Response validated, sending it back...
Error: No POI found. Please adjust the range.
Loaded 0 POIs

另一方面,如果我将浏览器直接指向 firstTutorial_simplified.php,我会收到以下消息:

Message: layerName parameter is not passed in GetPOI request.{"layer":null,"hotspots":[],"errorCode":20,"errorString":"No POI found. Please adjust the range."}

但是当从层测试站点进行测试时,层仍然有效。所以“在GetPOI请求中没有传递layerName参数”不是致命的。

于 2012-04-25T06:32:36.380 回答