我会使用谷歌地图api地理位置获取我所在位置的纬度和经度值,并在我的控制器中使用这些值作为简单的php变量。你知道它是否存在某种库、帮助程序或某种方式来做我需要的事吗?
您应该知道的一件事是GeoLocation API是浏览器/客户端的东西。不可能从服务器端确定比ip更准确的位置。
要回答您关于如何"在codeigniter控制器内获得GeoLocation位置"的问题,您应该做的是尝试将信息从客户端传递到服务器端。
其中一种方法是通过ajax。下面是一个示例流程:
1) 用户浏览到你的网页(在这一点上,你还不知道用户的更多位置)
2) 您将提示用户通过浏览器的GeoLocation API共享他的位置。
3) 如果用户允许您通过单击"共享位置"来了解他的位置,那么您可以使用用户比ip更准确的位置对服务器进行ajax回调。
4) 一旦你得到了,你就可以告诉客户端在ajax响应中该做什么。
另外,您还应该处理用户选择不通过GeoLocationneneneba API与您共享其更多用户位置的流程。
更新
和其他人说的一样,只需阅读v3 gmap API。它只是一种类似的东西
if (navigator.geolocation) var gl = navigator.geolocation;
if (gl) {
gl.getCurrentPosition(function(position) {
alert(position.coords.latitude);
alert(position.coords.longitude);
}, function(positionError) {
alert(positionError.message);
});
}
看看这个Google Maps API V3库,说明在这里(看看地理编码说明)