Javascript 如何在地图标记上显示自定义内容
我正在尝试实现一个显示一些标记的谷歌地图,我想实现一个代码,允许我在单击每个标记时显示自定义内容(网页)。。。我在网上搜索,发现了以下代码:Javascript 如何在地图标记上显示自定义内容,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,我正在尝试实现一个显示一些标记的谷歌地图,我想实现一个代码,允许我在单击每个标记时显示自定义内容(网页)。。。我在网上搜索,发现了以下代码: var标记=[]; 函数初始化(){ 变量映射选项={ 缩放:8, 中心:新google.maps.LatLng(35.502686,10.03658), mapTypeId:google.maps.mapTypeId.ROADMAP } var map=new google.maps.map(document.getElementById(“goog
var标记=[];
函数初始化(){
变量映射选项={
缩放:8,
中心:新google.maps.LatLng(35.502686,10.03658),
mapTypeId:google.maps.mapTypeId.ROADMAP
}
var map=new google.maps.map(document.getElementById(“googlemap”)、mapOptions);
变量位置=[
[point1',35.502686,11.050228,'http://www.google.com/intl/en_us/mapfiles/ms/micons/green-dot.png'],
['point2',36.083198,9.370759,'http://www.google.com/intl/en_us/mapfiles/ms/micons/green-dot.png']
];
var标记,i;
var contentString=''+
''+
''+
“乌鲁鲁”+
''+
“Uluru,也称为艾尔斯岩,是一个大型的”+
“南部的砂岩岩层”+
“澳大利亚中部的北领地。它位于335公里(208英里)处”+
“最近的大城镇艾丽斯·斯普林斯西南部;450 ;公里”+
"(280)英里(约160英里)的公路,卡塔特朱塔和乌鲁鲁是两个主要城市"+
“乌卢鲁-卡塔朱塔国家公园的特征。乌卢鲁是”+
“对Pitjantjatjara和Yankunytjatjara来说是神圣的”+
“该地区的土著居民。这里有许多泉水和水坑,”+
“岩洞和古画。乌鲁鲁被列为世界”+
“遗产地。”+
“归属:乌卢鲁,”+
(上次访问日期为2009年6月22日)。'+
''+
'';
var infowindow=new google.maps.infowindow({
内容:contentString
});
google.maps.event.addListener(映射,'click',函数(){
infowindow.close();
});
对于(i=0;i
据我所知,你为完成任务做了很多工作。我使用下面的JavaScript函数做了同样的事情。试一试:
function initialize() {
var mapOptions = { zoom: 2, center: centerLatLang, scrollwheel: false, draggable: isDraggable, panControl: true }; //preparing the options for map
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); //preparing the map
var marker_image = '<?php echo $base_url . '/' . $path; ?>/images/AD_Map_Pin_small.png'; //take this inside the for loop if you want different marker
var prev_infowindow =false;
<?php $abc = 0; foreach(map_details() as $map_data) { ?>
var latLang<?php echo $abc; ?> = new google.maps.LatLng<?php echo $map_data['field_coordinates_value'];?>;
var content<?php echo $abc; ?> = "<div class='InfoMarker'><?php echo '<img src='.$base_url .'/' .$map_data['field_image'].'><h3>'.$map_data['title'].'</h3>' . $map_data['field_copy']; ?></div>";
var infoWindow<?php echo $abc; ?> = new google.maps.InfoWindow({content: content<?php echo $abc; ?>});
var marker<?php echo $abc; ?> = new google.maps.Marker({ position: latLang<?php echo $abc; ?>, map: map, icon: marker_image });
google.maps.event.addListener(marker<?php echo $abc; ?>, 'click', function(){ if(prev_infowindow) {prev_infowindow.close(); } prev_infowindow =infoWindow<?php echo $abc; ?>; infoWindow<?php echo $abc; ?>.open(map, marker<?php echo $abc; ?>);});
<?php $abc++; } ?>
}
google.maps.event.addDomListener(window, 'load', initialize);
函数初始化(){
var mapOptions={zoom:2,center:centerLatLang,scrollwheel:false,draggable:isDraggable,panControl:true};//准备映射的选项
var map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);//准备映射
var marker_image='/images/AD_Map_Pin_small.png';//如果需要不同的标记,请将其放入for循环中
var prev_infowindow=false;
var latLang=new google.maps.LatLng;
var-content=“”;
var infoWindow=new google.maps.infoWindow({content:content});
var marker=new google.maps.marker({position:latLang,map:map,icon:marker\u image});
google.maps.event.addListener(marker,'click',function(){if(prev_infowindow){prev_infowindow.close()}prev_infowindow=infowindow;infowindow.open(map,marker);});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
希望这对您有所帮助。当您执行以下操作时:
infowindow.setContent(locations[i][0]);
您正在将infowindow的内容设置为传递的文本。由于locations数组的第一个元素是“point1”或“point2”,因此您要将InfoWindow内容设置为该元素
例如,如果要显示contentString
,请使用:
infowindow.setContent(contentString);
你能解释一下它什么时候停止工作的吗@user2389313很好,它可以工作,但是如果我想显示一个外部php文件,而不是“contentString”值并传递一个参数,该怎么办?例如:infowindow.setContent(page.php?dd=2);这是否正确?您需要使用Ajax获取内容。