【问题标题】:Draw Polygon in Googlemap based marker time在基于 Googlemap 的标记时间中绘制多边形
【发布时间】:2012-05-24 12:46:02
【问题描述】:

我想通过连接 googlemap 中的标记来绘制多边形。时间与每个标记相关联。所以我想根据时间连接每个点。我该怎么做。目前代码是这样实现的。我需要在哪里改变。

       var marker = new Array();
       var points = new Array();
     for(var i=0;i<value.length;i++)
          {
               var tempar=value[i].split(',');
               var center = new GLatLng(tempar[0], tempar[1]);
               var mar = new GMarker(center, icon);
               var imgpth=tempar[3]; 
               var tme=tempar[2];
               marker.push(mar);   
               marker[i].time = tempar[2];
               points.push(marker[i].getLatLng());
               drawMarker(mar,imgpth,tme);                   
        }
          for(i=;i<marker.length;i++)
         {
            map.addOverlay(marker[i]);
          }
           var polyline = new GPolygon(points, "#f33f00", 2, 1, "#ff0000", 0.2);
           map.addOverlay(polyline);

【问题讨论】:

  • 你试过按时间排序标记吗?
  • 这其实是最简单的。
  • 我们如何轻松地对包含标记对象的点数组进行排序。(每个标记对象都包含时间属性。我想根据这个时间进行排序)
  • @WojtekT..感谢指出

标签: c# javascript google-maps maps gpolygon


【解决方案1】:

最简单的方法是按时间对marker 数组进行排序。假设time 属性有一些合理的值(不是字符串):

marker.sort(function(a,b){return a.time-b.time});

如果time 是一个字符串,那么:

marker.sort(function(a,b) {
 var date1 = new Date(a.time);
 var date2 = new Date(b.time);
 return date1.getTime() - date2.getTime();

});

【讨论】:

  • 时间属性只是一个字符串。我怎样才能对这个时间字符串进行排序
  • 再次排序后,我们需要将其推入“Points”数组中...是否正确?
  • 还有一件事日期时间字符串不包含日期值。字符串将是这样的......“19:23:58”
  • 我无法解决您的所有问题。我给你举个例子,你自己想办法。
  • function SortByName(a, b){ return timeToSeconds(a.time) - timeToSeconds(b.time); } 函数 timeToSeconds(time) { time = time.split(/:/);返回时间[0] * 3600 + 时间[1] * 60 + 时间[2]; } //排序会是这样的..
猜你喜欢
  • 2013-04-20
  • 1970-01-01
  • 2019-07-26
  • 2015-10-03
  • 2018-07-24
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多