2014-07-04 49 views
0

獲取數據時,以GeoJSON這樣我就可以從MySQL將這個PHP查詢LeafletJS不顯示地圖從MySQL

while($row = mysql_fetch_assoc($dbquery)) { 
$feature = array(
'type' => 'Feature', 
'geometry' => array(
'type' => 'Point', 
'coordinates' => array((float)$row['lng'], (float)$row['lat']) 
), 
'properties' => array(
'pano' => $row['pano'] 
//Other fields here, end without a comma 
) 
); 
array_push($geojson['features'], $feature); 

得到的數據,並呼應與json_encode($ GeoJSON的,JSON_NUMERIC_CHECK)數組的時候;結果是

{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[25.726231,66.498966]},"properties":{"pano":"81_1_0.html"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[25.723139,66.50158]},"properties":{"pano":"81_1_0.html"}}]}; 

但是,當我試圖讓那些進入LeafletJS地圖上什麼也不顯示

var points = <?php echo json_encode($geojson, JSON_NUMERIC_CHECK); ?> ; 
var geoJsonLayer = L.geoJson(points, { 
    pointToLayer: function (feature, latlng) { 
     var marker = L.circleMarker(latlng, geojsonMarkerOptions); 

     marker.on('click', function (e) { 
      var feature = e.target.feature; 
      var content = '<iframe width="665" height="650" frameborder="0" src="/' + feature.properties.pano + '">'; 
      document.getElementById("event").innerHTML = content; 

      if (selectedMarker != false) { 
       selectedMarker.setStyle({ 
        fillColor: "#ff7800" 
       }); 
      } 
      marker.setStyle({ 
       fillColor: "#000000" 
      }); 
      selectedMarker = marker; 
     }); 

     return marker; 
    } 
}); 
markers.addLayer(geoJsonLayer); 

我做錯了的是什麼?

+0

它是否在控制檯中給出任何錯誤? – Khushboo

+0

@Khushboo沒有錯誤或任何控制檯 – somnium

+0

geojsonMarkerOptions中有什麼? – Khushboo

回答

0

以下嘗試: -

var bicycleRental = { 

    "type": "FeatureCollection", 
    "features":[{ 
     "type": "Feature", 
     "properties": { 
     "point_id": "m14885" 
     }, 
     "geometry": { 
     "type": "Point", 
     "coordinates": [ 
      101.52053833007812, 
      3.065117257466733 
     ] 
     } 
    } 


L.geoJson(bicycleRental, { 

       style: function (feature) { 
        return feature.properties && feature.properties.style; 
       }, 

       onEachFeature: onEachFeature, 

       pointToLayer: function (feature, latlng) { 
        return L.circleMarker(latlng, { 
         radius: 1.5, 
         fillColor: "#ffffff", 
         color: "#000", 
         weight: 0.8, 
         opacity: 0.5, 
         fillOpacity: 0.5 
        }); 
       } 
      }).addTo(map); 
+0

它可以與固定的GeoJSON文件一起使用。從數據庫獲取數據的php腳本是否有可能破壞了html文件? – somnium

+0

嘗試直接放置geojson結果。那麼,它工作嗎? – Khushboo

+0

Nope,「Uncaught SyntaxError:Unexpected identifier」L.geoJson(bicycleRental,{ – somnium

0

你不應該做這樣的事情

var points = JSON.parse(<?php echo json_encode($geojson, JSON_NUMERIC_CHECK); ?>); 

否則points將只是一個字符串。