Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter谷歌地图API V3地理编码不工作_Codeigniter_Google Maps_Google Maps Api 3_Geocoding_Google Geocoder - Fatal编程技术网

Codeigniter谷歌地图API V3地理编码不工作

Codeigniter谷歌地图API V3地理编码不工作,codeigniter,google-maps,google-maps-api-3,geocoding,google-geocoder,Codeigniter,Google Maps,Google Maps Api 3,Geocoding,Google Geocoder,我试图使用Biostall的Google Maps v3 API绘制一系列地址,但当我尝试键入地址时,每次生成的Lon Lat都是0,0。只有当我特别输入每个地址的经度和纬度时,它才起作用。甚至Biostall在其示例视频和文档中使用的条目也不起作用。我正在尝试使用geocodeCaching功能,请帮助 $this->load->library('googlemaps'); $config = array(); $config['zoom'] = 'auto'; $config[

我试图使用Biostall的Google Maps v3 API绘制一系列地址,但当我尝试键入地址时,每次生成的Lon Lat都是0,0。只有当我特别输入每个地址的经度和纬度时,它才起作用。甚至Biostall在其示例视频和文档中使用的条目也不起作用。我正在尝试使用geocodeCaching功能,请帮助

$this->load->library('googlemaps');

$config = array();
$config['zoom'] = 'auto';
$config['geocodeCaching'] = TRUE;
$config['region'] = 'US';
$config['sensor'] = FALSE;
$this->googlemaps->initialize($config);

$marker = array();
$marker['position'] = '37.429, -122.1519';
$marker['animation'] = 'DROP';
$this->googlemaps->add_marker($marker);

$marker = array();
$marker['position'] = '1600 Amphitheatre Parkway in Mountain View, Santa Clara County, California United States';
$marker['animation'] = 'DROP';
$this->googlemaps->add_marker($marker);

$data['map'] = $this->googlemaps->create_map();

echo print_r($data['map']['markers']);
标记器输出:

数组([marker_0]=>Array([latitude]=>37.429[经度]=>122.1519)[marker_1]=>Array([latitude]=>0[经度]=>0])1

这是生成的地图:

BIOSTALL的建议输出了以下内容: 纬度:0 液化天然气:0 错误:超出查询限制
数据位置:

感谢您使用我的库。我有几个建议:

1) 尝试在标记位置的末尾添加“美国”

2) 我相信你可以在地图上设置一个“区域”参数。尝试将此设置为“我们”

3) 如果仍然不起作用,请尝试进入库并找到get_lat_lon_from_address()函数,然后输出URL请求的结果

我希望这有帮助。我将很快考虑添加一个调试模式,这将有助于解决此类问题。如果还有其他问题,请告诉我:)


Steve

当它用PHP超过查询限制时,可能意味着你的IP被阻止。特别是当您尝试了太多的地址,并且在每个请求之间没有等待足够的时间时。尝试在每个请求之间添加一个暂停,但最有可能的情况是您只能等待IP再次空闲(非常烦人),或者您可以尝试客户端JavaScript。我不知道确切的原因,但是反向地理代码在客户端和JavaScript中工作得更好。你也可以从谷歌或使用OpenStreetMap获得付费服务。

谢谢@BIOSTALL,不过还是没有运气。我试着像你说的那样在地址的末尾加上地区代码和“美国”,结果还是一样的。当我在get_lat_lon_from_address()的底部打印出错误代码时,它的读数超过了查询限制。但是,当我将链接复制并通过浏览器时,我会从谷歌获得json数据。我只提出了一个地理编码请求,为什么会发生这种情况?谢谢!我等了一会儿,现在它开始工作了。我必须密切关注此功能,以确保在我的客户使用它时不会再次出现这种情况。要么是这样,要么注册谷歌商业地图API。这每年要花费1万英镑?真的那么多吗?哎哟