【问题标题】:Assign a latitude/longitude point to a region将纬度/经度点分配给区域
【发布时间】:2015-01-21 09:19:03
【问题描述】:

我有一张来自 jvectormap http://jvectormap.com/maps/countries/united-kingdom/ 的地图,它以 SVG 的“路径”显示国家/地区。

我还有一组带有经纬度坐标的对象。

是否可以根据坐标和 SVG 路径将每个对象分配给特定区域?

【问题讨论】:

    标签: ruby-on-rails ruby jvectormap


    【解决方案1】:

    我找到了一种方法,但它真的很老套,我相信还有更好的方法。

    无论如何,这是我解决问题的方法:

    jvm.Map.prototype.latLngToRegion = function (lat, lng) {
            var pointOnMap = this.latLngToPoint(lat, lng),
                pointOnPage = {
                    x: Math.round((pointOnMap.x + this.container.offset().left) - $(window).scrollLeft()),
                    y: Math.round((pointOnMap.y + this.container.offset().top) - $(window).scrollTop())
                },
                element = document.elementFromPoint(pointOnPage.x, pointOnPage.y),
                region = $(element).attr('data-code');
    
            return region; // note, this will only give you the region code, but from that you can read out most of what you need from jvectormaps itself.
        }
    

    需要注意的是,您要查找的纬度和经度必须在视图中,以便 document.elementFromPoint 起作用。但你也许可以更新滚动和地图平移等列表。

    【讨论】:

      【解决方案2】:

      好吧,也许您可​​以看看 jvectormap 如何将您当前的鼠标位置与该区域匹配 - 您应该能够以类似的方式匹配您的 lat/lng 坐标

      【讨论】:

        猜你喜欢
        • 2021-04-16
        • 2016-11-21
        • 1970-01-01
        • 1970-01-01
        • 2012-03-21
        • 1970-01-01
        • 2015-09-08
        • 2018-02-03
        • 1970-01-01
        相关资源
        最近更新 更多