取消设置JSON数组的某些元素后无法绘制Google标记

托尼

我正在尝试在Google Map上添加一些标记,但是在执行此操作之前,我需要取消设置JSON Array的某些元素,就像这样

$json = str_replace('"', '"', $loc);
    foreach ($json as $key => $value)
{
    if(preg_match('/^[X]{2}/',$value['pname'])){
        unset($json[$key]);
    }
}
echo json_encode($json);

在取消设置之前,这是它在JS console.log()中显示并绘制标记的方式

[Object, Object, Object, Object,...]

但取消设置后,它会显示为这样,并且不会绘制标记

Object {2: Object, 20: Object, 40: Object,...}

任何人都可以把我朝正确的方向发展。

这是在Google地图上生成标记的代码。

makeRequest('get_locations.php', function(data) {
            var data = JSON.parse(data.responseText);
            for (var i = 0; i < data.length; i++) {
                displayResellersPostCode(data[i]);
            }
        });     
        function displayResellersPostCode(location) {
            if (parseInt(location.lat) == 0) {
              geocoder.geocode( { 'pcode1': location.pcode1 }, function(results, status) {
                  if (status == google.maps.GeocoderStatus.OK) {
                       var marker = new google.maps.Marker({
                          map: map, 
                          position: results[0].geometry.location,
                          title: location.uname
                      }); 
                  }
              });
             } else {
                 var position = new google.maps.LatLng(parseFloat(location.latitude), parseFloat(location.longitude));
                 var marker = new google.maps.Marker({
                     map: map, 
                     position: position,
                     title: location.uname
                 }); 
             } 
         }
托尼

我的最终代码有效,

$json = str_replace('&quot;', '"', $loc);
foreach ($json as $key => $value)
{
    if(preg_match('/^[X]{2}/',$value['pname'])){
        unset($json[$key]);
    }
}
$json = array_values($json);
echo json_encode( $json); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章