您应该知道的一件事是 GeoLocation API 是浏览器/客户端的东西。无法从服务器端确定比 IP 更准确的位置。
要回答您关于如何“在 codeigniter 控制器中获取 GeoLocation 位置”的问题,您应该尝试将信息从客户端传递到服务器端。
一种方法是通过 ajax。这是一个示例流程:
1) 用户浏览您的网页(此时您还不知道用户的更准确的 ip 位置)
2) 你会提示用户通过浏览器的GeoLocation API分享他的位置。
3) 如果用户允许您通过单击“共享位置”了解他的位置,那么您使用用户的更准确的 ip 位置向服务器进行 ajax 回调。
4) 一旦你得到它,你就可以告诉客户端在你的 ajax 响应中做什么。
附:您还应该处理用户选择不通过 GeoLocation API 与您分享他更准确的 ip 位置的流程。
更新
就像其他人所说的,只需阅读 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);
});
}