我正在渲染maps.ejs文件:place_id,lat,lng。爲什麼我無法在谷歌地圖API中呈現「place_id」到ejs文件?
如果我在initMap函數本身的maps.ejs文件中聲明瞭「place_id」,那麼代碼運行良好,沒有任何錯誤。 但是,當我渲染place_id如圖所示的代碼它給誤差在鉻的控制檯:
(指數):34未捕獲的ReferenceError:
I:ChIJN1t_tDeuEmsRUsoyG83frY4不是在initMap(34(指數))中所定義 我正在使用cloud9並將API_KEY作爲環境變量導出。
//app.js
var express = require("express");
var app = express();
app.get("/", function(req, res) {
res.render("maps.ejs", {
place_id: "ChIJN1t_tDeuEmsRUsoyG83frY4",
lat: -33.8666199,
lng: 151.1958527
});
});
app.listen(process.env.PORT, process.env.IP, function() {
console.log("Server is ON");
}); // Server start
//maps.ejs
<!DOCTYPE html>
<html>
<head>
<style>
#map {
height: 400px;
width: 100%;
}
</style>
</head>
<title>Google Maps API</title>
<body>
<h3>My Google Maps Demo</h3>
<script>
function initMap() {
var uluru = {
lat: <%=lat%>,
lng: <%=lng%>
};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 14,
center: uluru
});
var infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);
service.getDetails({
placeId: <%=place_id%>
}, function(place, status) {
console.log(place);
if (status === google.maps.places.PlacesServiceStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(
'<div><strong>' + place.name + '</strong><br>' +
'Place ID: ' + place.place_id + '<br>' +
place.formatted_address + '<br>' +
"Rating : " + place.rating + '</div>');
infowindow.open(map, this);
});
}
});
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=<%=process.env.API_KEY%>&libraries=places&callback=initMap">
</script>
<div id="map"></div>
</body>
</html>
我試着創建一個字符串變量place_id但那也不起作用。 我的壞... Thankyou非常.. 這是一個愚蠢的問題。 –
不是一個愚蠢的問題。而且不要感覺不好 - 這種情況發生在我們所有人身上的時候!我發現這麼快的原因是我自己犯了同樣的錯誤。 ;-)讓我知道這是否是問題所在。 –