根据 geoip 数据生成国家地图

Posted

技术标签:

【中文标题】根据 geoip 数据生成国家地图【英文标题】:Generate countries map based on geoip data 【发布时间】:2012-07-26 18:39:11 【问题描述】:

我在这个话题上搜索了很多,但没有找到答案。

我有自己的统计数据包,用于保存用户的 geoip 数据(以及一堆其他数据)。我正在使用 maxmind geoip 库来获取这些信息。

因此,在我的后端,我将这些数据可视化为基本上有两列的文本,一列是国家名称,另一列是来自该国家/地区的访问次数。

我想用这些数据生成地图。 类似于世界地图,其中突出显示了我访问过的国家/地区。 热图会很好,但不是必需的。

我真的不在乎它是用 php(GD 图像库)还是 jquery 生成的,因为我已经将这两种技术用于统计后端。但我真的很想在没有谷歌分析或他们的图形 API 的情况下这样做。

【问题讨论】:

【参考方案1】:

我会试着假设。我会尝试这样做的方式...

    获取 FullHD(或高分辨率世界地图) 我会在 WGS84 标准中保留坐标(浮点值,否则很容易转换) 我会尝试将真实坐标接近图像比例,但在此之前...

这项工作的主要部分是数学。我其实不是数学家,但我知道应该在这里应用它以及为什么。

这里的主要目标是在平面上投影坐标,bec。 WGS84 使用 扁球体 作为参考面(与 radius = 6378137 m; flattering = 1/298.257223563),因此它不是理想的圆周,应该考虑在内。 + 图像应该以某种方式绑定GEO(您应该知道此图像的角角坐标@least。如果是这样,这是最简单的情况)。

这种情况的计算量不是很大,一切都导致了基本的平面几何。

这是可以帮助您处理地理空间数据的库http://www.gdal.org/。

我的建议是,如果您对此一无所知,请咨询该领域的一些专家(可能是某些大学/学院中的 SatCom 规范或 MobCom 规范)(或尝试 Google如果您对mathGEO 足够熟悉)并要求一个数学模型将GPS 坐标投影到flat surface,您一定会得到答案。

如果您不需要非常高的准确性,请自己尝试一下,也许您会走运。

如果您对数学有足够的了解,您可以在 MatLab(在这种情况下更适用)或 Mathcad 中尝试自己,并尝试自己在栅格上定位几个点。

如果你能在不久的将来找到答案,我会很高兴你把它贴在这里或与我分享你对特定案例的解决方案。

【讨论】:

谢谢保罗,我会考虑你的建议。 不客气!祝你好运!【参考方案2】:

我需要最后在这里回答我自己的问题。对于其他偶然发现此问题的人:

我一直在使用带有 topojson 扩展名的 d3js 库。 https://github.com/mbostock/topojson

【讨论】:

以上是关于根据 geoip 数据生成国家地图的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 创建自己的 Facade 扩展 geoip 根据 IP 获取国家地域城市信息

Logstash利用GeoIP库显示地图以及通过useragent显示浏览器

在 nGinx 中检查 GeoIP 不起作用

如何获取带有区域和子区域的地图

GeoIP IPv4 数据库返回不正确的国家代码 - 需要 GeoIP 更新?

GoogleMaps 和 GeoIP:从 IP 获取 Lat、Long 并绘制地图?