我想fitBounds()在谷歌地图上打电话,这样用户就可以看到自己相对于所选标记/位置的位置.
这是我的函数处理这个:
var fitMapToShowResult = function(index){
var hereLatLng = new google.maps.LatLng (lat,lng); //location of the user defined outside this func
var firstResultLatLng = new google.maps.LatLng(
$scope.searchResults[index].geometry.location.k,
$scope.searchResults[0].geometry.location.B
);
var latlngList = new Array( hereLatLng, firstResultLatLng ); // latlng: an array of instances of GLatLng
var latlngbounds = new google.maps.LatLngBounds();
for (var i=0;i<latlngList.length;i++){
latlngbounds.extend(latlngList[i]);
console.log('latlngbounds',latlngbounds);
}
//$scope.map.setCenter(latlngbounds.getCenter());
$scope.map.fitBounds(latlngbounds);
};
Run Code Online (Sandbox Code Playgroud)
它大约80%的时间都能很好地工作.但是,标记的大约五分之一完全不在视野范围内,并且变焦太高,以至于两个点无法同时显示.我究竟做错了什么?
我的地图使用自定义标记可能是相关的.
为了帮助调试,我添加了这段代码来绘制地图上的边界...
rect = new google.maps.Rectangle( {bounds: latlngbounds, map: $scope.map} );
Run Code Online (Sandbox Code Playgroud)
对于前几个结果,它总是看起来很完美:

但往往是不正确的:
请注意,在每一个地方是不正确的情况下,似乎矩形(高度/宽度)的尺寸中的一个是正确的,但其他则不是.我的直觉告诉我这是相关的.
我知道这是一个很受欢迎的问题,但我已经审查了所有其他问题,而且我的问题似乎与其中任何一个都没有重复.希望这个库存对未来的故障排除者有用,但这些都没有解决我的问题.
谷歌地图V3 fitBounds不准确 无用的问题,没有代码,没有答案 …
我们正在使用此处记录的Twitter嵌入式时间轴小部件.
根据文档,它应该"实时"自动更新自己:
这些新的时间线工具专为Web,移动Web和触摸设备而构建.它们可以快速加载,随流量扩展,并实时更新.
但事实并非如此.iframe最初加载正常,但后来永远不会更新.当我在Chrome开发者工具中观看网络标签时,我看不到任何错误或进一步的网络数据请求.
有没有其他人注意到这一点?文档是否完全错误且功能不存在?我正在使用Twitter提供的代码片段:
<a class="twitter-timeline" data-screen-name="foxnews" data-widget-id="11111111111111" data-chrome="nofooter noheader noscrollbar transparent" data-tweet-limit="10"></a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?"http":"https";if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
if (typeof(twttr) !== "undefined") {
twttr.widgets.load();
}
</script>
Run Code Online (Sandbox Code Playgroud)
更新如果我从向导/生成器中完全按原样使用代码段,则会出现 更新.但是,当我添加自定义数据属性时,它将停止工作.
我想找到任何/所有带TTL的redis键-1.这是每个未设置为过期的密钥.我已经尝试了几个GUI客户端,但它们似乎都没有关闭此功能.
我发现这个答案似乎提供了一种从命令行执行此操作的方法.但是当我在本地或在我的远程redis主机上尝试时,我得到"无效参数"错误.
本地
redis-cli keys "*" | while read LINE ; do TTL=`redis-cli ttl $LINE`; if [ $TTL -eq -1 ]; then echo "$LINE"; fi; done;
远程
$redis-cli -h ... -p ... -a
redis>> keys "*" | while read LINE ; do TTL=`redis-cli ttl $LINE`; if [ $TTL -eq -1 ]; then echo "$LINE"; fi; done;
我究竟做错了什么?有一个更好的方法吗?
我试图让作曲家使用我自己的库分支。
原文:https : //github.com/KnpLabs/php-github-api 我的叉子:https : //github.com/TransitScreen/php-github-api
我只需将其添加到 composer.json 即可使用 composer 安装原版:
{
"require": {
"knplabs/github-api": "~1.4"
}
}
Run Code Online (Sandbox Code Playgroud)
我跟着指示的文件中,并把它改成这样:
{
"repositories": [
{
"type": "git",
"url": "https://github.com/TransitScreen/php-github-api.git"
}
],
"require": {
"knplabs/github-api": "dev-master"
},
"minimum-stabilitiy": "dev"
}
Run Code Online (Sandbox Code Playgroud)
在我的分叉存储库中,我同时创建了 amaster和dev-masterbranch。我不清楚哪个是正确的,所以我做了两个。我也尝试过使用"type" : "vcs"和.git从 URL 中删除。一个都不行。我运行composer update,然后composer.lock文件仍然指向原始 repo URL,而不是我的。所以当我运行时我永远不会得到我的改变composer install。
我究竟做错了什么??
PS:我注意到我试图分叉的库在它的 composer.json 文件中有这个:
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
}
Run Code Online (Sandbox Code Playgroud)
我还没有找到任何文档来解释别名可能产生的影响。例如,我的分叉存储库应该有一个1.4.x …
我们正在使用 Postgres 数据库运行 CakePHP v3.x。我需要选择一些经纬度在距离另一点 X 距离内的记录。PostGIS有一个功能可以做到这一点,但似乎我必须正确使用原始 SQL 查询才能使用它。
我不是在寻求编写原始查询的帮助,但我正在寻求确认原始查询方法是否是在充分利用框架的同时使用此扩展的正确方法。我搜索并没有找到任何库来扩展 CakePHP ORM 以包含它。也许还有第三种选择我没有想到。
[注意:这不起作用...]
public function fetch()
{
$maxMetersAway = 10 * 1000;
$lat = $this->request->query['lat'];
$lng = $this->request->query['lng'];
$stops = $this->Stops->find('all')
->where("ST_DWithin( POINT($lng,$lat), POINT(Stops.lng,Stops.lat), $maxMetersAway")
->toArray();
$this->set(['stops'=>$stops, '_serialize' => true]);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Chrome开发者工具中的"配置文件"选项卡来记录内存堆快照.我的应用程序有内存泄漏,所以我希望快照的大小逐渐增加,他们这样做.但由于我不明白的原因,第一个快照总是人为地大...在第一个和第二个之间创造一个看似具有欺骗性的内存下降.所有后续快照都按预期逐渐增加.
我知道由于缓存和其他设置,在页面加载开始时经常使用额外的内存.但无论何时拍摄第一张快照,都会发生同样的事情.可能是页面加载后30秒或30分钟.相同的模式.我唯一的猜测是它自己的配置文件工具以某种方式与内存交互,但这似乎是一个延伸.
有什么想法在这里发生了什么?
我怀疑我的问题的“最佳”答案是使用依赖注入并完全避免这个问题。不幸的是我没有那个选项......
我需要为导致实例化第三方库的类编写测试。我想模拟/存根库类,以便它不会进行实时 API 调用。
我在 CakePHP v3.x 框架中使用 phpunit。我能够模拟库并创建存根响应,但这并不能阻止“真实”类被我的测试之外的代码实例化。我曾考虑尝试模拟实例化上游的类,但它们很多,这会使测试难以编写/维护。
有没有办法以某种方式“存根”类的实例化?类似于我们可以告诉php单元期待API调用并预设返回数据的方式?
我在CakePHP v3.17 w/Postgres 9.4上
我也试图$this->SomeTable->deleteAll([...])删除连接表中的记录.
对带有桌子Stops和桌子的总线系统进行成像Routes.停靠与许多路线相关联(因为多条公交线路可以在每条路线停靠),而且路线显然与许多站点相关联.
RoutesTable.php:
$this->belongsToMany('Stops');
Run Code Online (Sandbox Code Playgroud)
StopsTable.php:
$this->belongsToMany('Routes');
Run Code Online (Sandbox Code Playgroud)
这是我想要使用的删除逻辑,但由于连接表中的记录遗留下来,因此无效:
$stopsTable = TableRegistry::get('Stops');
$stopsTable->deleteAll(['agency_id' => $agency->id]);
$routesTable = TableRegistry::get('Routes');
$routesTable->deleteAll(['agency_id' => $agency->id]);
Run Code Online (Sandbox Code Playgroud)
以下是DOES工作的逻辑,但效率低下,因为它必须遍历每一个停止:
$stopsTable = TableRegistry::get('Stops');
foreach ($agency->stops as $stop) {
$stopsTable->delete($stop);
}
$routesTable = TableRegistry::get('Routes');
$routesTable->deleteAll(['agency_id' => $agency->id]);
Run Code Online (Sandbox Code Playgroud)
有什么更好/更正的方法呢?
这是一个类似的问题,但对于v2.x,所以这里不一定相关.
如果我的应用程序有一个 markdown, 字符串,'## Hello'我可以使用 pandoc 将其直接转换为 HTML 吗?我不想先将它写入文件,但我能找到的所有文档和示例都显示了文件。
我想要做这样的事情:pandoc -f markdown -t html '## Hello'。
这可能吗?
注意:我使用的是一个pandoc-bin,它是一个节点包装器。我认为这不会影响我的问题,因为库似乎包装了原始语法。
在较旧版本的phpunit中,您可以使用标志关闭代码覆盖率报告:--no-coverage.这使我们的套件在CI环境等上运行得更快.在当前的稳定版本(5.4)中,我没有在文档中看到这个选项.目前关闭代码覆盖率的方法是什么?
php ×5
cakephp ×2
javascript ×2
linux ×2
phpunit ×2
postgresql ×2
cakephp-3.0 ×1
composer-php ×1
embedding ×1
git ×1
github ×1
google-maps ×1
memory ×1
memory-leaks ×1
mocking ×1
pandoc ×1
postgis ×1
redis ×1
redis-cli ×1
twitter ×1
unit-testing ×1