Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在地图标记上显示自定义内容_Javascript_Google Maps_Google Maps Markers - Fatal编程技术网

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获取内容。