Google maps 潘托多重标记
假设我从外部源加载新标记,它如下所示:Google maps 潘托多重标记,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,假设我从外部源加载新标记,它如下所示: var markersArray = []; downloadUrl("eventsxml.php", function(data) { var xml = data.responseXML; var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++
var markersArray = [];
downloadUrl("eventsxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("id");
var address = markers[i].getAttribute("id");
var type = markers[i].getAttribute("venue_type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
markersArray.push(marker);
bindInfoWindow(marker, map, infoWindow, html);
}
});
var markersArray = [];
// create an empty bounds object
var bounds = new google.maps.LatLngBounds();
downloadUrl("eventsxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("id");
var address = markers[i].getAttribute("id");
var type = markers[i].getAttribute("venue_type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
// add each marker's location to the bounds
bounds.extend(point);
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
markersArray.push(marker);
bindInfoWindow(marker, map, infoWindow, html);
}
// center and zoom the map to fit the bounds
map.fitBounds(bounds);
});
var-markersArray=[];
下载URL(“eventsxml.php”,函数(数据){
var xml=data.responseXML;
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i“+地址;
var icon=customIcons[type]| |{};
var marker=new google.maps.marker({
地图:地图,
位置:点,,
icon:icon.icon,
阴影:icon.shadow
});
markersArray.push(marker);
bindInfoWindow(标记、地图、infoWindow、html);
}
});
我该如何收集标记的边界,然后在加载标记后将其全部平移到视图中?我在谷歌上做了很多搜索,但这些解决方案都不适合我
var markersArray = [];
downloadUrl("eventsxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("id");
var address = markers[i].getAttribute("id");
var type = markers[i].getAttribute("venue_type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
markersArray.push(marker);
bindInfoWindow(marker, map, infoWindow, html);
}
});
var markersArray = [];
// create an empty bounds object
var bounds = new google.maps.LatLngBounds();
downloadUrl("eventsxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("id");
var address = markers[i].getAttribute("id");
var type = markers[i].getAttribute("venue_type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
// add each marker's location to the bounds
bounds.extend(point);
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
markersArray.push(marker);
bindInfoWindow(marker, map, infoWindow, html);
}
// center and zoom the map to fit the bounds
map.fitBounds(bounds);
});
请注意,这不会更改地图的缩放级别
代码片段:
//以下示例创建复杂标记以指示附近的海滩
//悉尼,新南威尔士州,澳大利亚。
函数initMap(){
const map=new google.maps.map(document.getElementById(“map”){
缩放:10,
中心:{
lat:-33.9,
液化天然气:151.2
},
});
const infoWindow=new google.maps.infoWindow();
var-markersArray=[];
//创建一个空边界对象
var bounds=new google.maps.LatLngBounds();
//下载URL(“eventsxml.php”,函数(数据){
//var xml=data.responseXML;
var xml=parseXml(xmlString);
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i“+地址;
var icon=customIcons[type]| |{};
var marker=new google.maps.marker({
地图:地图,
位置:点,,
icon:icon.icon,
标题:姓名
});
markersArray.push(marker);
bindInfoWindow(标记、地图、infoWindow、html);
}
//居中并缩放地图以适应边界
映射边界(bounds);
// });
}
//由名称、板条和场地类型组成的标记数据。
常量xmlString='';
var customIcons={
海滩:{
图标:“https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png",
},
城镇:{
图标:“http://maps.google.com/mapfiles/ms/micons/blue.png",
}
};
函数parseXml(str){
if(window.ActiveXObject){
var doc=新的ActiveXObject('MicrosoftXMLDOM');
doc.loadXML(str);
退货单;
}else if(window.DOMParser){
return(新的DOMParser).parseFromString(str,'text/xml');
}
}
函数bindInfoWindow(标记、地图、infoWindow、html){
google.maps.event.addListener(标记'click',函数(){
setContent(html);
信息窗口。打开(地图、标记);
});
}
/*始终明确设置贴图高度以定义div的大小
*包含映射的元素*/
#地图{
身高:100%;
}
/*可选:使示例页面填充窗口*/
html,
身体{
身高:100%;
保证金:0;
填充:0;
}
复杂标记图标
var markersArray = [];
downloadUrl("eventsxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("id");
var address = markers[i].getAttribute("id");
var type = markers[i].getAttribute("venue_type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
markersArray.push(marker);
bindInfoWindow(marker, map, infoWindow, html);
}
});
var markersArray = [];
// create an empty bounds object
var bounds = new google.maps.LatLngBounds();
downloadUrl("eventsxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("id");
var address = markers[i].getAttribute("id");
var type = markers[i].getAttribute("venue_type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
// add each marker's location to the bounds
bounds.extend(point);
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
markersArray.push(marker);
bindInfoWindow(marker, map, infoWindow, html);
}
// center and zoom the map to fit the bounds
map.fitBounds(bounds);
});
请注意,这不会更改地图的缩放级别
代码片段:
//以下示例创建复杂标记以指示附近的海滩
//悉尼,新南威尔士州,澳大利亚。
函数initMap(){
const map=new google.maps.map(document.getElementById(“map”){
缩放:10,
中心:{
lat:-33.9,
液化天然气:151.2
},
});
const infoWindow=new google.maps.infoWindow();
var-markersArray=[];
//创建一个空边界对象
var bounds=new google.maps.LatLngBounds();
//下载URL(“eventsxml.php”,函数(数据){
//var xml=data.responseXML;
var xml=parseXml(xmlString);
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i“+地址;
var icon=customIcons[type]| |{};
var marker=new google.maps.marker({
地图:地图,
位置:点,,
icon:icon.icon,
标题:姓名
});
markersArray.push(marker);
bindInfoWindow(标记、地图、infoWindow、html);
}
//居中并缩放地图以适应边界
映射边界(bounds);
// });
}
//由名称、板条和场地类型组成的标记数据。
常量xmlString='';
var customIcons={
海滩:{
图标:“https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png",
},
城镇:{
图标:“http://maps.google.com/mapfiles/ms/micons