Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Geolokasi sejumlah besar posting berdasarkan Alamat IP. (880.000 baris)

Kami akan membuat beberapa alamat IP, melakukan geolokasi dan memplotnya:

library(iptools)
library(rgeolocate)
library(tidyverse)

Hasilkan satu juta (terlalu merata) alamat IPv4 acak:

ips <- ip_random(1000000)

Dan, lakukan geolokasi:

system.time(
  rgeolocate::maxmind(
    ips, "~/Data/GeoLite2-City.mmdb", c("longitude", "latitude")
  ) -> xdf
)
##    user  system elapsed 
##   5.016   0.131   5.217 

5s untuk 1m IPv4. 👍🏼

Sekarang karena keseragaman, gelembung akan menjadi kecil bodoh, jadi hanya untuk contoh ini kita akan membulatkannya sedikit:

xdf %>% 
  mutate(
    longitude = (longitude %/% 5) * 5,
    latitude = (latitude %/% 5) * 5
  ) %>%  
  count(longitude, latitude) -> pts

Dan, plot mereka:

ggplot(pts) +
  geom_point(
    aes(longitude, latitude, size = n), 
    shape=21, fill = "steelblue", color = "white", stroke=0.25
  ) +
  ggalt::coord_proj("+proj=wintri") +
  ggthemes::theme_map() +
  theme(legend.justification = "center") +
  theme(legend.position = "bottom")

Anda dapat melihat apa yang saya maksud tentang "terlalu seragam". Namun, Anda memiliki IPv4 "asli", jadi Anda harus gtg.

Pertimbangkan untuk menggunakan scale_size_area() , tetapi, sejujurnya, pertimbangkan untuk tidak merencanakan IPv4 di peta geografis sama sekali. Saya melakukan penelitian skala internet untuk mencari nafkah dan klaim akurasi meninggalkan banyak hal yang diinginkan. Saya jarang pergi ke bawah atribusi tingkat negara karena alasan itu (dan kami membayar untuk data "nyata").




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kunci asing dan NULL di mySQL

  2. Masalah Kirim Formulir... Masukkan kunci

  3. Apa pendekatan yang baik untuk mengelola koneksi db di aplikasi Python Google Cloud SQL (GAE)?

  4. Apa cara terbaik di MySQL untuk mendapatkan berapa jam umur sesuatu?

  5. Bagaimana memilih baris nilai maksimum di tabel mysql