2016-04-08 7 views
0

Ich bin sehr neue Broschüre und Javascript zu verwenden. Ich versuche, einen Zeitschieberegler mithilfe von Flugblättern zu implementieren. Ich habe beiIncorporating Zeitschieber mit Faltblatt

1) https://github.com/dwilhelm89/LeafletSlider, hatte einen Blick

2) https://gis.stackexchange.com/questions/120331/jsonp-working-with-leaflet-time-slider und

3) TimeSlider Plugin and Leaflet - Markers not appearing in order

und ich bin immer noch Probleme. Meine HTML-Datei wie folgt aussieht:

<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml"> 

<head profile="http://gmpg.org/xfn/11"> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

    <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.css"/> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" type="text/css"> 

    <script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script type="text/javascript" src="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js"></script> 
    <script type="text/javascript" src="C:\Users\Lukasz Obara\OneDrive\Programing\JavaScript\Leaflet\Plugins\SliderControl.js"></script> 
</head> 

<body> 
    <meta charset="utf-8"> 
    <title>Slider</title> 
    <style> html, body { 
     height: 100%; 
     margin: 0; 
     padding: 0; 
    } 

    #map { 
     height: 100%; 
    } 
    </style> 
</body> 

<div id="map"></div> 
<script type='text/javascript' src='C:\Users\Lukasz Obara\OneDrive\Programing\HTML\Slider\slider.geojson'></script> 
<script type='text/javascript' src='C:\Users\Lukasz Obara\OneDrive\Programing\HTML\Slider\leaflet_demo_slider.js'></script> 

meine slider.geojson Datei:

var slider = { 
    "type": "FeatureCollection", 
    "features": [{ 
     "type": "Feature", 
     "geometry": { 
      "type": "Point", 
      "coordinates": [35.1966, 31.7825] 
     }, 
     "properties": { 
      "GPSId": "2", 
      "DateStart": "2015-06-23", 
      "DateClosed": "2016-01-23", 
      "GPSUserName": "fake2", 
      "GPSUserColor": "#FF5500", 
      "Gender": "Male", 
      "Active": 1 
     } 
    }, { 
     "type": "Feature", 
     "geometry": { 
      "type": "Point", 
      "coordinates": [35.2, 31.780117] 
     }, 
     "properties": { 
      "GPSId": "6", 
      "DateStart": "2015-06-23", 
      "DateClosed": "2016-01-23", 
      "GPSUserName": "fake1", 
      "GPSUserColor": "#00FF57", 
      "Gender": "Female", 
      "Active": 0 
     } 
    }, { 
     "type": "Feature", 
     "geometry": { 
      "type": "Point", 
      "coordinates": [35.201715, 31.779548] 
     }, 
     "properties": { 
      "GPSId": "15", 
      "DateStart": "2015-02-21", 
      "DateClosed": "2016-02-28", 
      "GPSUserName": "fake10", 
      "GPSUserColor": "#00FF57", 
      "Gender": "Male", 
      "Active": 1 
     } 
    }, { 
     "type": "Feature", 
     "geometry": { 
      "type": "Point", 
      "coordinates": [35.200987, 31.779606] 
     }, 
     "properties": { 
      "GPSId": "16", 
      "DateStart": "2015-01-01", 
      "DateClosed": "2016-01-01", 
      "GPSUserName": "fake11", 
      "GPSUserColor": "#00FF57", 
      "Gender": "Female", 
      "Active": 0 
     } 
    }, { 
     "type": "Feature", 
     "geometry": { 
      "type": "Point", 
      "coordinates": [35.200987, 31.780522] 
     }, 
     "properties": { 
      "GPSId": "17", 
      "DateStart": "2015-02-04", 
      "DateClosed": "2016-09-21", 
      "GPSUserName": "fake12", 
      "GPSUserColor": "#00FF57", 
      "Gender": "Male", 
      "Active": 1 
     } 
    }, { 
     "type": "Feature", 
     "geometry": { 
      "type": "Point", 
      "coordinates": [35.201435, 31.780981] 
     } 
    }], 
}; 

und mein Javascript leaflet_demo_slider.js Datei

var map = L.map('map', { 
    center: [31.780117, 35.2], 
    zoom: 17, 
    minZoom: 2, 
    maxZoom: 20 
}); 

L.tileLayer('http://{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.png', { 
    attribution: '&copy; <a href="http://osm.org/copyright" title="OpenStreetMap" target="_blank">OpenStreetMap</a> contributors | Tiles Courtesy of <a href="http://www.mapquest.com/" title="MapQuest" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png" width="16" height="16">', 
    subdomains: ['otile1','otile2','otile3','otile4'] 
}).addTo(map); 

var sliderControl = null; 

//Create a marker layer (in the example done via a GeoJSON FeatureCollection) 
var testlayer = L.geoJson(slider, { 
    onEachFeature: function (feature, layer) { 
     layer.bindPopup("<h1>" + feature.properties.GPSUserName + "</h1><p>Other info</p>"); 
    } 
}); 

var sliderControl = L.control.sliderControl({ 
    position: "topright", 
    layer: testlayer, 
    range: true, 
    timeAttribute: "DateStart" 
}); 

//Make sure to add the slider to the map ;-) 
map.addControl(sliderControl); 

//And initialize the slider 
sliderControl.startSlider(); 

Wenn ich alle Schieber Optionen entfernen innerhalb die Javascript-Datei und einfach

haben
L.geoJson(slider, { 
    onEachFeature: function (feature, layer) { 
     layer.bindPopup("<h1>" + feature.properties.GPSUserName + "</h1><p>Other info</p>"); 
    } 
})addTo(map); 

dann kann ich die Markierungen sehen, aber mit dem, was ich habe, kann ich nur eine Karte erzeugen.

Antwort

1

Das Problem scheint Ihr letztes GeoJSON Feature zu sein, die keine DateStart Eigenschaft haben (für den Schieber) oder eine GPSUserName Eigenschaft (für das Pop-up). Wenn Sie diese Funktion löschen, wird es funktionieren:

http://jsfiddle.net/ngeLm8c0/6/

Diese Art von Problemen ist oft leichter zu diagnostizieren, wenn Sie an der Konsole ausgegeben schauen, wo Fehler protokolliert werden. In den meisten Browsern können Sie auf die Konsole (und andere Entwicklerwerkzeuge) zugreifen, indem Sie F12 drücken. Natürlich ist nicht immer klar, was an den Fehlermeldungen schief läuft, aber selbst wenn Sie den Fehler, den Sie bekommen, nicht verstehen, ist es hilfreich, die Fehlermeldungen mit Ihren Fragen hier einzubinden, damit andere mehr können einfach dein Problem diagnostizieren.

Verwandte Themen