我正在尝试实现一个 php 服务,该服务将采用 $_GET("LAT")
和 $_GET("LNG")
并根据Google StreetView API v3 JavaScript 是否有效。
如果是,则返回 OK,或 NOK。
我意识到完成这个任务的 JS 代码是:
var latLng = new google.maps.LatLng(12.121221, 78.121212);
streetViewService.getPanoramaByLocation(latLng, STREETVIEW_MAX_DISTANCE, function (streetViewPanoramaData, status) {
if (status === google.maps.StreetViewStatus.OK) {
//ok
} else {
//no ok
}
});
我无法将所有内容(即 PHP 和 JS)结合在一起,这样就可以了。
谁能帮帮我吗?
谢谢
编辑1:
这是我到目前为止提出的代码,但它不起作用:
<?php
Header("content-type: application/javascript");
?>
<html>
<head> </head>
<body onload="checkValid()">
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script>
<script language="text/javascript">
function checkValid() {
var streetViewService = new google.maps.StreetViewService();
var STREETVIEW_MAX_DISTANCE = 100;
var latLng = new google.maps.LatLng(<?php $_GET("LAT") ?>,<?php $_GET("LNG") ?>);
streetViewService.getPanoramaByLocation(latLng, STREETVIEW_MAX_DISTANCE, function (streetViewPanoramaData, status) {
if (status === google.maps.StreetViewStatus.OK) {
alert('ok');
} else {
alert('not');
}
});
}
</script>
</body>
</html>
最佳答案
如果你想使用JS来验证纬度和经度,那么你需要将$_GET
参数获取到JS中。像这样的东西:
var LAT = '<?=isset($_GET['LAT']) ? $_GET['LAT'] : 91?>';
var LNG = '<?=isset($_GET['LNG']) ? $_GET['LNG'] : 181?>';
var latLng = new google.maps.LatLng(LAT, LNG);
streetViewService.getPanoramaByLocation(latLng, STREETVIEW_MAX_DISTANCE, function (streetViewPanoramaData, status) {
if (status === google.maps.StreetViewStatus.OK) {
//ok
} else {
//no ok
}
});
我使用了一个简单的三元语句来询问 GET
是否可用,如果可用,则将其添加到 JS 变量中,如果不添加超出 Lat 和 范围的值长。这将导致 Google Maps API 自动失败。
关于php - 如何使用 JS 和 PHP 检查 LatLng 在 Google StreetView 中是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17242770/