【问题标题】:Need to draw US counties on MAP by polygon at same time需要同时在 MAP 上按多边形绘制美国县
【发布时间】:2014-03-12 12:50:05
【问题描述】:

我有一个县数据库,其中包含美国所有县的 POLY 坐标。总数约为 3214 个县。每个县都有数千个 POLY 坐标。我可以画一些县。但是当我尝试绘制所有县时,浏览器会昏昏欲睡并继续加载和加载。任何人都可以通过任何算法帮助我解决我的问题吗?

我们将不胜感激。

提前致谢。

【问题讨论】:

    标签: javascript jquery ajax google-maps


    【解决方案1】:

    我建议使用 WEAVE

    http://oicweave.org/

    或 Google 的地图工具:

    https://developers.google.com/maps/documentation/javascript/shapes

    另外,您可以使用 PHP 将县绘制为带有透明度的 PNG 图像,并根据需要将它们覆盖在您的地图上。使用 GD 库创建所有县(甚至县组)的图像并保存以备将来使用。

    http://blog.themeforest.net/tutorials/fun-with-the-php-gd-library-part-1/

    【讨论】:

    • 感谢您的回复霍伊特曼。我理解你的建议。但是如何为每个县制作图像,以及如何获得国家放置图像的确切位置?我必须先从 MySQL 获取详细信息。希望你能理解我的要求。感谢您的快速回复。
    【解决方案2】:

    Javascript 是单线程的。如果你给它一个很大的任务去做,它会freeze这个接口直到它完成(或者它因为错误而超时)。

    你唯一能做的就是让它把东西画成更小的块。

    粗略的 p 码。

    var counties = [
       // Your data here
    ];
    
    var countyIdx = 0;
    
    function drawNext() {
      var county = counties[countyIdx];
      // Draw county
    
      // Advance to the next county
      countyIdx++;
      if (county < counties.length) {
        window.setTimeout(drawNext, 50);
      }
    }
    
    // Kick it off
    drawNext();
    

    【讨论】:

    • 感谢您的快速回复杰里米。但我需要在地图上拖曳多边形。让我稍微详细解释一下我的要求。我们必须在地图上画出所有县。第一次,所有县都将采用纯色。一旦它被管理员标记,该县将被涂成橙色。我希望这个要求对你有意义。
    • 要求确实如此。但是,当您说“sleepy and keep loading and loading”时,我猜测您的意思是浏览器停止并且操作超时。如果是这种情况,这个通用解决方案仍然有效,您只需要弄清楚代码的哪一部分停滞不前。您需要使用分析器或其他调试工具来弄清楚这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2016-03-31
    • 1970-01-01
    • 2013-03-12
    • 2012-06-08
    • 2021-11-05
    • 1970-01-01
    相关资源
    最近更新 更多