Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 45

прошу прощения за сбитый формат после кода на перле, очень похоже, на то что тег code не закрыт, но найти причину пока не могу.
[souce lang=pearl]

[/source]

Используйте вместо code. (Квадратные скобки я поставил, что бы парсер не скушал теги)
благодарю
А чем вам угловые скобки не понравились?

<source lang=perl>
Можно было ещё залить данные в Fusion Tables, они для подобных задач и были созданы. Красивые визуализации прилагаются.
Вот например небольшая база айпишников по США.
Простите за занудство, но раз уж на нерусском, то наверное не Kolvo, а Amount, например.
У вас другое распределение точек — особенно в Австралии, Аляске, Африке, Южной Америке, Сибири и Дальнем Востоке.
видимо генерировалась давно, могло все измениться
Куда Бразилия делась, и Китай, где пользователей интернета больше, чем всех американцев вместе взятых?
И в Антарктиде точка,
или это битый пиксель у меня на мониторе?))
В Антарктиде есть интернет, я с коллегой по аське общался, когда он там был. Задержка была ощутима — секунда туда, секунда обратно.
как до Луны :)
до Луны 15 минут
Почему?
да, я знал, пингвины активно используют интернет

ну а если серьезно, не подскажете, как проложена до данных широт связь.
спутник, как еще
1) тогда странно «точная» координата для спутникового приемо-передатчика
2) секунда задержки, это еще хорошо в данном случае :)
1) а вы уверены, что она точная? Меня вот обычно в центр Москвы помещают по IP. А я там уже с полгода не бывал.
2) чтож хорошего, за секунду сигнал проходит 300 000 км, это несколько раз до телекоммуникационного спутника и обратно. Значит много времени теряется на различных маршрутизаторах, есть к чему стремиться

Так не только в Антарктиде! Насколько я знаю в Норильск тоже нету никаких наземных каналов, и вся связь 100 тысячного города с миром происходит через спутник…
А что вас так смущает?
Это феерично! Хотелось бы только разрешение побольше, эдак 1280х1024 и соответственно более детализированно
Тогда уж и 1920x1080, под стандарт :)
В качестве обоев на рабочий стол. :)
или фона для страницы «Статистика» на сайте
ммм, а чем вам 3600 на 1800 не устраивает?
с данным разрешением моно спокойно ресайзить по нужное разрешение
А всего-то нужно было для импорта CVS в базу использовать mysqlimport. А дальше в базе всё пошло бы гораздо быстрее. Очень сэкономили бы во времени.
т.е. импортировать svs в БД, а потом парсить БД для необходимого результата?
Через mysqlimport огромные CVS можно превратить в таблицу в базе за очень короткое время, а далее, изменениями параметров полей, добавлением индексов и простейшими запросами добиться необходимого вида базы (чего собственно и делать для такой задачи не обязательно). В итоге перл-скрипт будет лишним + экономия времени не сопоставимая. По опыту скажу, CSV в 10+ гигабайт вскочил в базу за минуты (порядка 5-8), попытки же парсить его скриптами показывали порядка пары недель на той же машине.
я не настолько крут в запросах, чтоб срезать дробные части и сгруппировать простыми запросами и остальным
НЛО прилетело и опубликовало эту надпись здесь
пару часов, это время заполнения БД.
картинка генерируется в совершенно других временных интервалах.
даешь серые ИП Европе и Японии!
При чем здесь серые IP?
а Вы посмотрите на карту. где основное сосредоточение точек? Европа и Япония. если им дать больше серых ИП, то точек там будет меньше. весь смыл нанесения это увидеть где больше пользователей инетом.(в том числе хостеры компании). а наличие серых ИП дает существенную погрешность в эти данные
Правда она считает, что я из бутово переехал в Александровский сад. Но ничего, нам такая точность не к чему.


Видимо координаты центра города просто указаны :)
запрашивать координаты для определенных ипов из всего диапазона?
Не понял вопроса.
>есть модуль с логичным названием Geo::IP
насколько я помню данный модуль возвращает координату, и прочие данные при запросе к нему ip адреса.
т.е. вы предлагаете поочередно спросить у данного модуля все возможные варианты ip адресов?
Зачем же все. У него есть замечательный метод range_by_ip, с помощью которого можно обойти только диапазоны.
А можно то же самое, только яркость (цвет, оттенок,...) точек в зависимости от поля kol?
НЛО прилетело и опубликовало эту надпись здесь
Осталось разбивку по цветам и страну+количество адресов.
Вот на Ruby:



Код:

require 'geoip'
require 'RMagick'

LAT, LON, WIDTH, HEIGHT, BORDER = 180, 360, 2000, 1200, 70

OFFSET_X = (WIDTH.to_f - BORDER.to_f) / LON.to_f
OFFSET_Y = (HEIGHT.to_f - BORDER.to_f) / LAT.to_f

c = Magick::Image.new(WIDTH, HEIGHT, Magick::GradientFill.new(0, 0, HEIGHT, 0, "#24302F", "#1A2423")) do |img|
  #img.background_color = "#1A2423"
end

cache = {}
GeoIP.new(File.dirname(__FILE__) + '/GeoLiteCity.dat').each do |r|
  x = (180.to_f + r.longitude.to_f) * OFFSET_X
  y = (90.to_f - r.latitude.to_f) * OFFSET_Y
  z = x.to_i * y.to_i
  cache[z] ||= 0

  gc = Magick::Draw.new
  gc.fill(cache[z].to_i > 0 ? "#7D762B" : "#EBE3AF")
  gc.point x, y
  gc.draw c

  cache[z] += 1
end

c.write File.dirname(__FILE__) + '/map.png'
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации