2012-04-01 2 views
0

ポイント間の距離を計算してgpsポイント(表示されるポイント数を減らしたい)を絞り込み、距離が300メートル未満の場合はマップに次のポイントを追加しないでください。ここでマップポイントの距離によるフィルタリング

は、マーカーやポリライン

var json = jQuery.parseJSON(data); 
      jQuery("#gMap").gmap3({ action: 'clear' }); 
      jQuery(".marker").remove(); 
      var counts = 0; 

      jQuery.each(json, function(i, item) { 
       var polyArray=[]; 
       var name = item.name; 
       var userId = item.data.user; 
       jQuery.each(item.data.data, function(i, nav) { 
        var ts = nav.timestamp; 
        var lat = nav.latitude; 
        var long = nav.longitude; 

        if (lat != null && long != null) { 
         addMarker(name, counts = counts + 1, ts, lat, long, userId); 
         polyArray.push([ lat, long]); 
        } 
        addPolyline(polyArray, get_random_color()); 
       }); 

      }) 

を作成するには、私の現在のjavascriptのであり、これは私が上記を達成するために使用されるPHPの私の古いバージョンである - 私は私のJavaScriptで同じことを達成することができますか?

<?php 

       $old_lat = $old_long = "0"; 
       $data = array(); 

       foreach($history['data'] as $i => $record) { 
        $distance = distance($record['latitude'], $record['longitude'], $old_lat, $old_long, "V"); 

         if($distance >= $_SESSION['same_position']) { 
         $last_i = $i; 
         $data[$i] = $record; 
          $old_lat = $record['latitude']; 
          $old_long = $record['longitude']; 
         } else { 
         $data[$last_i]['to_timestamp'] = $record['timestamp']; 
          $old_lat = $record['latitude']; 
          $old_long = $record['longitude']; 
         } 

       } 

       foreach($data as $record) { 
       echo 'add(jQuery(this), number += 1, "' . $record['timestamp'] . '", "' . $name . '", "' . $history['user'] . '", "' . $record['latitude'] . '", "' . $record['longitude'] . '", "' . $record['to_timestamp'] . '");'; 
       } 

        ?> 

乾杯!

+0

あなたはポイント計算間の実際の距離との問題を抱えて、あるいは単にJavaScriptでそれを実装していますか? – Douglas

+0

私はgoogle.maps.geometry.spherical.computeDistanceBetween()で差異を計算できます。そのちょうどjavascriptのバージョンを動作させる。 –

答えて

0

distance()はどこですか、期待どおりに動かないのですか?)しかし、あなたが使っているPHPのmaps-API -versionには何の違いもありません。

ただし、ジオメトリ・ライブラリを使用してクライアント側での距離を計算することができる:

google.maps.geometry.spherical.computeDistanceBetween()