donglu3184 2018-10-17 02:24
浏览 67
已采纳

如何解决InvalidValueError:在索引0处:不是LatLng或LatLngLiteral:不是对象?

I'm trying to make a poly line in google maps, but I'm retreiving the data first in my db. and then to my php file and to my script file. the following is how i generate my json data in my DBPHPfile.. sorry if its a bit messy

while($row = pg_fetch_assoc($result)){
    $cleaned = clean($row['longlat']);
    $count =true;
    $temp = 0;
    $temp2 = 0;

    for($x = 0; $x <= strlen($cleaned)-1; $x++){
      if($cleaned[$x] == ' '){
        $temp2 = $x - $temp;
        if($count == true){
          array_push($long, remove_spaces(substr($cleaned, $temp, $temp2)));
          $count = false;
        }
        else{
          $count = true;
          array_push($lat, remove_spaces(substr($cleaned, $temp, $temp2)));
        }
        $temp = $x;

      }
    }
    $temp2 = strlen($cleaned) - $temp;
    array_push($lat, substr($cleaned, $temp, $temp2+1));
  }


  $finalroutes = array();

  // finalizing my routes

  for($x = 0; $x<sizeof($long);$x++){
    $long[$x]=remove_spaces($long[$x]);
    settype($long[$x], "float");
    $lat[$x]=remove_spaces($lat[$x]);
    settype($lat[$x], "float");
    array_push($finalroutes, "{lat: $lat[$x], lng: $long[$x]}");
  }
   echo json_encode($finalroutes);

then my script is this

$(function(){
      $('#go').click(function(){
        var longtemp = $('#long').val();
        var lattemp = $('#lat').val();

        $.ajax({
          url:"dbphp.php",
          method:"POST",
          data:{longtemp:longtemp, lattemp:lattemp},
          success:function(data){
              map = new google.maps.Map(document.getElementById('map'), {zoom: 18, center: {lat: 8.264670, lng: 124.263394}, mapTypeId: 'terrain'});
              flightPlanCoordinates = JSON.parse(data); //from here
              // var newflights=[];
              // for(var i = 0; i <flightPlanCoordinates.type.length();i++)
              //   newflights[i]=flightPlanCoordinates[i];
              console.log(data);


              flightPath = new google.maps.Polyline({
                path: flightPlanCoordinates,
                geodesic: true,
                strokeColor: '#FF0000',
                strokeOpacity: 1.0,
                strokeWeight: 2
              });//to here
              flightPath.setMap(map);
          }
        })
      })
    })

i marked where the problem is so you can find it easily.

  • 写回答

1条回答 默认 最新

  • dongse5408 2018-10-17 02:38
    关注

    Replace this:

    array_push($finalroutes, "{lat: $lat[$x], lng: $long[$x]}");
    

    With

    $finalroutes[] = ["lat" => $lat[$x], "lng" => $long[$x]];
    

    This way you will have the correct array, that later you be encoded as json in echo json_encode($finalroutes);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。