javascript - 无效值错误: setPosition: not a LatLng or LatLngLiteral: not an Object

标签 javascript php jquery html ajax

所以我的代码遇到了问题,我尝试从从数据库下载的变量设置谷歌街景位置。它的数据库和 php 端可以工作,但是当我尝试将其分配给“panorama.setPosition(prizeLocation);”时它给我错误“InvalidValueError:setPosition:不是 LatLng 或 LatLngLiteral:不是对象”。我已经尝试并环顾四周,但每个人都遇到 setCenter 的问题,而不是 setPosition 的问题。感谢任何帮助

谢谢

HTML 代码:

<script>
var prizeLocation;
function downloadCoords() {
    $.ajax({
        type: 'GET',
        url: 'prizeCoordsTransformer.php',
        dataType: "json",
        success: function(data) {
            console.log(data);
            prizeLocation = data.prizeLocation;
            console.log(prizeLocation);
        },
        error: function(data) {
        console.log(data);
        }
    }); 
}
</script

(后面是脚本)

<script>
setTimeout(function() {
    console.log(prizeLocation);
    panorama = map.getStreetView();
    panorama.setPosition(prizeLocation);
    panorama.setPov({
        heading: 265,
        pitch: 0
    });
    panorama.setVisible(true);
    panorama.setOptions({
        fullscreen: true,
        enableCloseButton: false
    });
}, 2000);
</script>

PHP 代码:

<?php

ini_set('display_errors', 0); 
error_reporting(E_ERROR);
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "db";

 // Create connection
 $conn = mysqli_connect($servername, $username, $password);
 mysqli_select_db($conn, $dbname);

 // Check connection
 if (!$conn) 
 {
   die("Connection failed: " . mysqli_connect_error());
 }
 // echo "Connected successfully";


 $query = "SELECT prizeLocation FROM prizeLocation";
 $result = mysqli_query($conn, $query);
 $result1 = mysqli_fetch_row($result);



echo json_encode(array('prizeLocation'=>$result1[0]));

mysqli_close($conn); 

?>

附注除了prizeLocation变量之外,这里的一切都运行良好。所以如果我将变量更改为“varprizeLocation={lat:-43.533476,lng:172.636581};”或者其他有用的东西

最佳答案

  1. PHP 是否设置 mime 类型 application/json

  2. console.log(prizeLocation); 是否执行?成功后打印一个字符串或一个对象 - 如果仍然是一个字符串,则执行 prizeLocation = JSON.parse(data.prizeLocation);

  3. 该对象应为{"lat": -43.533476, "lng": 172.636581}

像这样

   var pl = {"lat": -43.533476, "lng": 172.636581};
   console.log(pl);

试试这个

<?PHP
header("content-type:application/Json");
$arr = array('lat' => -43.533476, 'lng' => 172.636581);
echo json_encode($arr);
?>

关于javascript - 无效值错误: setPosition: not a LatLng or LatLngLiteral: not an Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42592940/

相关文章:

javascript - 动画功能 : change div width by using radio buttons

php - MySQL - 尝试使用 for 循环检索数据库中的最新帖子 - 仅显示第一篇帖子

PHP,查看日期范围是否部分在另一个日期范围内

Javascript 进度仅在第二个表单提交后才有效

javascript - 如何在 Typescript 中为 Map 的类型别名定义索引签名?

javascript - PhoneRTC:启动时将数据从 Java 发送到 Javascript

jquery - CSS 试图获得下拉菜单,但菜单不断破坏布局

javascript - FullPage.js scrollOverflow 无法与加载的内容正常工作

javascript - 从 Firebase OAuth 获取 Twitter 个人资料 url

php - 使用 php 和 mysql 分成四分之一