如何从数组设置 infoWindow 内容 Google 地图 API
How to set infoWindow content from an array Google Maps API
我正在尝试从数组填充信息窗口内容:
var arrayTest = ["a", "b"];
infoWindow.setContent("<p>Header</p>" + arrayTest.map(function (val) { return "<p>" + val + "</p>" }));
infoWindow.open(map, marker);
返回以下内容:
如何防止在信息窗口中打印逗号?
您可以使用 .join()
方法更改连接默认字符,即逗号
var arrayTest = ["a", "b"];
infoWindow.setContent("<p>Header</p>" + arrayTest.map(function (val) { return "<p>" + val + "</p>" }).join(""));
infoWindow.open(map, marker);
Array.map() returns 一个数组。所以对于你的例子:
arrayTest.map(function (val) { return "<p>" + val + "</p>" })
will return: ["<p>a</p>","<p>b</p>"];
(其中有逗号)。
您可以使用 Array.join() 将该数组组合成一个不带逗号的字符串:"<p>Header</p><p>a</p><p>b</p>"
arrayTest.map(function (val) { return "<p>" + val + "</p>" }).join("")
代码片段:
"use strict";
// This example displays a marker at the center of Australia.
// When the user clicks the marker, an info window opens.
function initMap() {
const uluru = {
lat: -25.363,
lng: 131.044,
};
const map = new google.maps.Map(document.getElementById("map"), {
zoom: 4,
center: uluru,
});
const infoWindow = new google.maps.InfoWindow();
var arrayTest = ["a", "b"];
infoWindow.setContent("<p>Header</p>" + arrayTest.map(function (val) { return "<p>" + val + "</p>" }).join(""));
const marker = new google.maps.Marker({
position: uluru,
map,
title: "Uluru (Ayers Rock)",
});
infoWindow.open(map, marker);
marker.addListener("click", () => {
infoWindow.open(map, marker);
});
}
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
<!DOCTYPE html>
<html>
<head>
<title>Info Windows</title>
<script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>
<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap&libraries=&v=weekly"
defer
></script>
<!-- jsFiddle will insert css and js -->
</head>
<body>
<div id="map"></div>
</body>
</html>
我正在尝试从数组填充信息窗口内容:
var arrayTest = ["a", "b"];
infoWindow.setContent("<p>Header</p>" + arrayTest.map(function (val) { return "<p>" + val + "</p>" }));
infoWindow.open(map, marker);
返回以下内容:
如何防止在信息窗口中打印逗号?
您可以使用 .join()
方法更改连接默认字符,即逗号
var arrayTest = ["a", "b"];
infoWindow.setContent("<p>Header</p>" + arrayTest.map(function (val) { return "<p>" + val + "</p>" }).join(""));
infoWindow.open(map, marker);
Array.map() returns 一个数组。所以对于你的例子:
arrayTest.map(function (val) { return "<p>" + val + "</p>" })
will return: ["<p>a</p>","<p>b</p>"];
(其中有逗号)。
您可以使用 Array.join() 将该数组组合成一个不带逗号的字符串:"<p>Header</p><p>a</p><p>b</p>"
arrayTest.map(function (val) { return "<p>" + val + "</p>" }).join("")
代码片段:
"use strict";
// This example displays a marker at the center of Australia.
// When the user clicks the marker, an info window opens.
function initMap() {
const uluru = {
lat: -25.363,
lng: 131.044,
};
const map = new google.maps.Map(document.getElementById("map"), {
zoom: 4,
center: uluru,
});
const infoWindow = new google.maps.InfoWindow();
var arrayTest = ["a", "b"];
infoWindow.setContent("<p>Header</p>" + arrayTest.map(function (val) { return "<p>" + val + "</p>" }).join(""));
const marker = new google.maps.Marker({
position: uluru,
map,
title: "Uluru (Ayers Rock)",
});
infoWindow.open(map, marker);
marker.addListener("click", () => {
infoWindow.open(map, marker);
});
}
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
<!DOCTYPE html>
<html>
<head>
<title>Info Windows</title>
<script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>
<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap&libraries=&v=weekly"
defer
></script>
<!-- jsFiddle will insert css and js -->
</head>
<body>
<div id="map"></div>
</body>
</html>