как определить географическое расположение пользователя
на станице есть гугловская карта
хочется сделать, так что бы когда пользователь заходит на эту страницу ему как центр карты отображался город, в котором он находится
речь идет только о центрировании на уровне города
естественно данные кэшируются на сервере и в куках
собственно пара вариантов решения
1. первое определить часовой пояс для вошедшего пользователя
тем самым определяем широту, на которой расположен пользователь
далее определяем, к какой стране он относится ru, en
тем самум примерно определяем долготу, далее выводим максимально крупный город, который соответствует этой широте и стране из которой зашел пользователь
долго, сложно и неточно((
2. есть вариант определения расположения по ip, у dnsstuff было что-то похожее
то-бишь чтение данных whois сервиса
но это требует немало ресурсов и времени, и кэшировать эти данные можно разве что в куках из-за большого объема
собственно этот вариант намного точнее предыдущего, но ресурсов требует в разы больше
так же есть проблема зума
например, для Москвы лучше 11 единиц
а для например Хета(есть у нас в стране такой город) идеально подходит 16 единиц
для начало можно просто взять среднее
попробовать определить эти данные можно по численности населения и занимаемой площади
google maxmind geoip
Большую точность дают geoip базы которые нередко собираются "вручную".
правда возникли сложности с установкой((
и честно говоря я не понял как он работает в качестве Apache Module
Цитата:
For GeoIP clients, go to the download files page. You may need to enter your account login and password. From there, you can download the binary or CSV formats of the GeoIP databases you purchased. Then you will want to upload the databases to your web server.
If you are not a client, you can use the free GeoLite database, download from the GeoLite City page.
If you are not a client, you can use the free GeoLite database, download from the GeoLite City page.
тоже маленький недостаток
geoip.inc, geoipcity.inc, GeoLiteCity.dat
в файле geoipcity.inc закоментил 34ую строчку. мне она ненужна
а на самой странице вызвал код
собственно все свелось к тому что я скачал файлы:
в файле geoipcity.inc закоментил 34ую строчку. мне она ненужна
Код:
require_once 'geoipregionvars.php';
а на самой странице вызвал код
Код:
<pre>
<?php
include("geoipcity.inc");
$gi = geoip_open("GeoLiteCity.dat", GEOIP_STANDARD);
$record = geoip_record_by_addr($gi,"128.103.60.28");
print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . " " . $record->city . "\n";
print $record->latitude . "\n";
print $record->longitude . "\n";
geoip_close($gi);
?>
</pre>
<?php
include("geoipcity.inc");
$gi = geoip_open("GeoLiteCity.dat", GEOIP_STANDARD);
$record = geoip_record_by_addr($gi,"128.103.60.28");
print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . " " . $record->city . "\n";
print $record->latitude . "\n";
print $record->longitude . "\n";
geoip_close($gi);
?>
</pre>