Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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 在php中显示不同标记颜色的困难_Javascript_Php_Google Maps_Google Maps Api 3_Google Maps Markers - Fatal编程技术网

Javascript 在php中显示不同标记颜色的困难

Javascript 在php中显示不同标记颜色的困难,javascript,php,google-maps,google-maps-api-3,google-maps-markers,Javascript,Php,Google Maps,Google Maps Api 3,Google Maps Markers,我很难显示不同的标记颜色。此标记色差基于数据库中的值 这是用来显示地图和标记的编码 <script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY" type="text/javascript"> </script> <script type="text/javascript"> var map; function init(){ map = new google.m

我很难显示不同的标记颜色。此标记色差基于数据库中的值

这是用来显示地图和标记的编码

<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"
  type="text/javascript">
</script> 
<script type="text/javascript">
  var map;
  function init(){
    map = new google.maps.Map(document.getElementById('maps'), {
      zoom: 10,
      center: new google.maps.LatLng(-7.320795, 112.731386),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    <?php foreach($get_data->result() as $row) {
      $nilai = $row->nilai;
      if($nilai >= 0 && $nilai <=50) {?>
        var icons = {
          info: {
            icon: '<?php echo base_url("assets/marker_merah.png");?>'
          }
        };
      <?php }elseif($nilai >= 51 && $nilai <=69){ ?>
        var icons = {
          info: {
            icon: '<?php echo base_url("assets/marker_hijau.png");?>'
          }
        };
      <?php }elseif($nilai >= 70) { ?>
        var icons = {
          info: {
            icon: '<?php echo base_url("assets/marker_biru.png");?>'
          }
        };
      <?php }
    } ?>

    var features = [
    <?php foreach($get_data->result() as $row){ ?>
      {
        position: new google.maps.LatLng(<?php echo $row->lat;?>,<?php echo $row->long;?>),
        type: 'info',
        title : '<?php echo $row->nama;?>'
      },
    <?php } ?>
    ];

    // Create markers.
    features.forEach(function(feature) {
      var marker = new google.maps.Marker({
        position: feature.position,
        icon: icons[feature.type].icon,
        title: feature.title,
        map: map
      });
    });
  }
 google.maps.event.addDomListener(window, 'load', init);
</script>

var映射;
函数init(){
map=new google.maps.map(document.getElementById('maps'){
缩放:10,
中心:新google.maps.LatLng(-7.320795112.731386),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
变量图标={
信息:{
图标:“”
}
};
变量图标={
信息:{
图标:“”
}
};
变量图标={
信息:{
图标:“”
}
};
变量特征=[
{
位置:新google.maps.LatLng(,),
键入:“info”,
标题:“”
},
];
//创建标记。
features.forEach(函数(feature){
var marker=new google.maps.marker({
位置:feature.position,
图标:图标[feature.type]。图标,
标题:feature.title,
地图:地图
});
});
}
google.maps.event.addDomListener(窗口'load',init);
我想为值0-50显示红色标记,为值51-69显示绿色标记,为值70及以上显示蓝色标记

运行上面的代码后,我发现所有的标记都是绿色的,而红色和蓝色的标记不会出现


请帮助我。

您执行以下循环

{
位置:新google.maps.LatLng(,),
键入:“info”,
图标:“”,
图标:“”,
图标:“”,
标题:“”
},
];
//创建标记。
features.forEach(函数(feature){
var marker=new google.maps.marker({
位置:feature.position,
图标:feature.icon,
标题:feature.title,
地图:地图
});
});
}
google.maps.event.addDomListener(窗口'load',init);

我希望这有帮助

Xenomena是对的,你们是互相替换的。。我猜你是从

你必须仔细看看那里有多维数组

     var icons = {
      parking: {
        icon: iconBase + 'parking_lot_maps.png'
      },
      library: {
        icon: iconBase + 'library_maps.png'
      },
      info: {
        icon: iconBase + 'info-i_maps.png'
      }
    };
因此,我的答案是:

        var icons = {
      info1: {
        icon: 'icons/blue.png'
      },
      info2: {
        icon: 'icons/white.png'
      },
      info3: {
        icon: 'icons/red.png'
      }
    };
这就是为icon生成mltidimensional数组,然后在数组get_lang中生成我自己的latlong数据,在数组get_data中生成nilai数据:

foreach($get_lat as $i=>$row){ ?>
  {
    position: new google.maps.LatLng(<?php echo $row[0];?>,<?php echo $row[1];?>),
<?php
  if($get_data[$i] <50) {?>
    type: 'info1',
  <?php } elseif ($get_data[$i] >= 51 && $get_data[$i] <=69){ ?>
    type: 'info2',
  <?php } else { ?>
    type: 'info3',
  <?php } ?>
    title : "<?php echo $row[0];?>"
  },
<?php } ?>
];
foreach($i=>$row){?>
{
位置:新google.maps.LatLng(,),
键入:“info1”,
键入:“info2”,
键入:“info3”,
标题:“
},
];
建议,下次发布代码时,还需要发布示例输入

全厂守则:

希望这有帮助

        var icons = {
      info1: {
        icon: 'icons/blue.png'
      },
      info2: {
        icon: 'icons/white.png'
      },
      info3: {
        icon: 'icons/red.png'
      }
    };
foreach($get_lat as $i=>$row){ ?>
  {
    position: new google.maps.LatLng(<?php echo $row[0];?>,<?php echo $row[1];?>),
<?php
  if($get_data[$i] <50) {?>
    type: 'info1',
  <?php } elseif ($get_data[$i] >= 51 && $get_data[$i] <=69){ ?>
    type: 'info2',
  <?php } else { ?>
    type: 'info3',
  <?php } ?>
    title : "<?php echo $row[0];?>"
  },
<?php } ?>
];