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
Google maps Google地图标记不显示整个xml_Google Maps_Google Maps Markers - Fatal编程技术网

Google maps Google地图标记不显示整个xml

Google maps Google地图标记不显示整个xml,google-maps,google-maps-markers,Google Maps,Google Maps Markers,我在我的网站上使用谷歌地图API。地图从xml中获取数据,然后使用经度和纬度显示相应位置上的标记。然而,我在xml中有500多个条目,但地图并没有显示所有条目。谁能帮帮我吗。我需要在地图上标记整个xml。地图显示在“”上,地图使用的xml文件为“”。对于谷歌地图,我的代码如下: <script type="text/javascript"> var infowindow; var map; function initialize(str,category,city

我在我的网站上使用谷歌地图API。地图从xml中获取数据,然后使用经度和纬度显示相应位置上的标记。然而,我在xml中有500多个条目,但地图并没有显示所有条目。谁能帮帮我吗。我需要在地图上标记整个xml。地图显示在“”上,地图使用的xml文件为“”。对于谷歌地图,我的代码如下:

    <script type="text/javascript">
  var infowindow;
  var map;
  function initialize(str,category,city,minprice,maxprice,flag) {

var myLatlng = new google.maps.LatLng(30.55538, 73.13690);
    var myOptions = {
      zoom: 5,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    downloadUrl("<?php echo WEB_PATH;?>test/generate.php", function(data){
      var markers = data.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markers.length; i++) {
        var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
        var marker = createMarker(markers[i].getAttribute("name1"),markers[i].getAttribute("name2"), markers[i].getAttribute("img"), markers[i].getAttribute("description"), markers[i].getAttribute("id"), latlng);
       }
     });

    function createMarker(name1,name2, img, description, id, latlng) {
    var marker = new google.maps.Marker({position: latlng, map: map});
    google.maps.event.addListener(marker, "click", function() {
      if (infowindow) infowindow.close();
      infowindow = new google.maps.InfoWindow({content: '<div style="float:left;"><img src="<?php echo WEB_PATH;?>'+img+'" width="75px" height="75px" /></div><div style="float:left; margin-left:10px; font:Arial;"><div style="font-weight:bold;">'+name1+'<br/>'+name2+'</div><div style="width:200px;">'+description+'</div><div><a href="<?php echo WEB_PATH;?>index.php?page=item&id='+id+'">View Product</a></div></div>'});
      infowindow.open(map, marker);
    });
    return marker;
}
</script>

var信息窗口;
var映射;
函数初始化(str、类别、城市、最小价格、最大价格、标志){
var mylatng=new google.maps.LatLng(30.55538,73.13690);
变量myOptions={
缩放:5,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
下载URL(“test/generate.php”,函数(数据){
var markers=data.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i'+name1+'
'+name2+'+description+'}); 信息窗口。打开(地图、标记); }); 返回标记; }
您在xml文件中为这么多标记定义了相同的纬度和经度。例如,lat=“33.718151”lng=“73.060547”出现在52个条目中。
您的标记在同一位置时被覆盖。对于同一位置有多个标记的情况,您可以稍微偏移标记(例如0.001度),在距离实际点的半径内。这也会产生良好的视觉效果。

您在xml文件中为这么多标记定义了相同的纬度和经度。例如,lat=“33.718151”lng=“73.060547”出现在52个条目中。
您的标记在同一位置时被覆盖。对于同一位置有多个标记的情况,您可以稍微偏移标记(例如0.001度),在实际点的半径内。这也会产生很好的视觉效果。

谢谢你给我解决方案。它实际上与你所说的完全一致。标记正在显示,但它们相互重叠,因此只有顶部的标记显示。你能告诉我如何偏移标记,以便kers不会离开他们应该去的区域,同时也不会因为太拥挤而无法在地图上显示。我尝试将它们偏移0.001,但当它们离开实际位置时会出现一个点。因为某些位置有100多个标记。我该怎么办?再次感谢。好的。然后你可以尝试m在信息框中显示多个信息的方法。选中此帖子,伊格纳修斯的回答将解决您的问题!感谢您给我提供解决方案。它实际上与您所说的完全一致。标记正在显示,但它们相互重叠,因此只有顶部的标记显示。您能告诉我如何抵消此错误吗标记,这样标记就不会离开它们应该在的区域,同时也不会太拥挤以至于无法在地图上显示。我尝试将它们偏移0.001,但当它们离开实际位置时会出现一个点。因为某些位置有100多个标记。我该怎么办?再次感谢。好的。然后你可以尝试在信息框中显示多个信息的方法。选中此帖子,伊格纳修斯的回答将解决你的问题!