我有一个应用程序,我正在使用Google Javascript地理编码API来获取地址的lat/lng.
代码类似于
geocoder = new google.maps.Geocoder()
geocoder.geocode({ 'address': query }, function(results, status) {
addresses = {};
$.each(results, function(index, value){
addresses[index] = {"lat":value.geometry.location.$a,"lng":value.geometry.location.ab}
})
});
Run Code Online (Sandbox Code Playgroud)
一切都很好,花花公子,但事实是位置对象的属性名称会定期更改.每次他们改变,我的网站都会中断.
两次我不得不改变我的代码以适应google的地理位置api中奇怪的lat/lng属性名称更改.原来是Xa,Ya,然后我不得不改为Ya,Za,现在是$ a,ab.我没有看到这些变化背后有任何用户友好的逻辑.
有谁知道为什么这些属性名称会改变,和/或我可以使用什么策略来获取lat/lng,同时避免这些属性名称更改引起的问题?
它总是让我感到困惑,如果一个文件夹具有读写权限,Apache + PHP就无法写入它.您必须结束授予apache执行权限才能在该文件夹中写入文件.为什么?
例如,使用chmod 664(其中构建组包含apache用户),apache将无法在此文件夹中写入临时缓存文件:
drw-rw-r-- 5 jenkins build 4096 Jun 15 13:05 cache
Run Code Online (Sandbox Code Playgroud)
而使用chmod 774 apache将能够将新文件写入该文件夹:
drwxrwxr-- 5 jenkins build 4096 Jun 29 11:44 cache
Run Code Online (Sandbox Code Playgroud) 我有一张纬度和经度的桌子.我成功地使用了BETWEEN子句,直到我遇到了搜索的值与数据库中的值相同的情况.在这些情况下,它不会返回结果.这是一个例子,其中:
SELECT
`Location`.`latitude`,
`Location`.`longitude`
FROM
`locations` AS `Location`
WHERE `latitude` >= 40.735619
AND `latitude` <= 40.736561
AND `longitude` >= -74.033882
AND `longitude` <= -74.030861;
Run Code Online (Sandbox Code Playgroud)
返回:
"latitude" "longitude"
"40.736561" "-74.033882"
"40.735619" "-74.030861"
Run Code Online (Sandbox Code Playgroud)
如果我使用BETWEEN CLAUSE(注意我甚至试过这个):
SELECT
`Location`.`latitude`,
`Location`.`longitude`
FROM
`locations` AS `Location`
WHERE `latitude` BETWEEN LEAST(40.735619, 40.736561)
AND GREATEST(40.736561, 40.735619)
AND `longitude` BETWEEN LEAST(- 74.033882, - 74.030861)
AND GREATEST(- 74.030861, - 74.033882)
Run Code Online (Sandbox Code Playgroud)
我得到0结果.哦,如果我为每个值Ex添加和/或减去0.000001,那么更多."BETWEEN(40.735619-0.00001)"等.如果我这样做,它会返回两个结果.
好吧,我会使用> =和<=但是我不明白为什么BETWEEN表现得像>和<在文档中时非常清楚:
如果expr大于或等于min且expr小于或等于max,则BETWEEN返回1
来自https://developers.google.com/maps/documentation/staticmaps/#Limits我读到:
Google Static Maps API具有以下使用限制:
每个应用程序每天25 000个免费静态地图请求.
如果我没有在URL中提供API密钥,它如何确定限制?引用页面的IP?引用网址的域名?客户的IP?
我需要从PHP脚本调用Web服务。Web服务速度很慢,我对它的响应不感兴趣,我只想向它发送数据。
我正在尝试使用curl_multi_exec(以下示例在此处:http : //www.jaisenmathai.com/articles/php-curl-asynchronous.html),它是第二个参数($ still_running),让您知道何时完成发送并接收。但是,我只想知道何时完成脚本发送。当然,如果我在脚本发送完数据之前退出了脚本,则Web服务将永远不会注册接收请求。
另一种查看方法是检测PHP何时处于空闲状态,等待服务器的响应。
我想要实现的是以下对话:
我搜索了有关限制的API文档,我只看到有关速率限制的信息,即在给定时间段内可以访问您的短链接的人数(http://dev.bitly.com/rate_limiting.html).
我想知道我可以通过API创建多少短链接是否有限制?一千?一百万?极大数?
我正在尝试使用通过电子邮件排序的JSON响应对象来填充选择框,但JQuery似乎正在将键的类型从文本更改为整数,因此通过现在的数字索引重新排序响应对象,搞砸了选择框的顺序.
所以json的反应如下:
{"2":"aaron@mail.com","1":"bernard@mail.com"}
Run Code Online (Sandbox Code Playgroud)
在代码类似于:
$.getJSON('urlwithjsonresponse.com',function(response){
console.log(response);
});
Run Code Online (Sandbox Code Playgroud)
输出这样的对象:
{1:"bernard@mail.com",2:"aaron@mail.com"}
Run Code Online (Sandbox Code Playgroud)
如何防止此转换/重新排序?
Ps也会出现$ .ajax
我似乎无法找到一个关于如何在CakePHP 2 shell脚本上接收参数的简单具体示例.
class TestShell extends AppShell {
public function argumentTest(){
$parser = parent::getOptionParser();
$parser->addArgument('testArgument', array('short' => 't','help' => 'The test argument'));
var_dump($this->params);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我试着打电话给它:
控制台/蛋糕TestShell参数测试--t 45
控制台/蛋糕TestShell参数测试-t 45
控制台/蛋糕TestShell参数测试--testArgument 45
控制台/蛋糕TestShell argumentTest -testArgument 45
以上所有我得到这个作为回应:
Usage:
cake lot_web_service [-h] [-v] [-q]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
ajax ×1
api ×1
arrays ×1
asynchronous ×1
bit.ly ×1
cakephp ×1
cakephp-2.0 ×1
curl ×1
geolocation ×1
google-maps ×1
javascript ×1
jquery ×1
linux ×1
mysql ×1
nonblocking ×1
php ×1