points on GeoJSON map are now clickable for infowindow

closes #78
This commit is contained in:
Jan-Piet Mens
2016-01-30 11:53:31 +01:00
parent 46caebdcff
commit c286f64e3c
3 changed files with 32 additions and 2 deletions
+23
View File
@@ -69,6 +69,29 @@ function initialize() {
processPoints(e.feature.getGeometry(), bounds.extend, bounds);
map.fitBounds(bounds);
});
// click to show info
map.data.addListener('click', function(event) {
var tst = event.feature.getProperty('tst');
var data = {
lat: event.latLng.lat(),
lon: event.latLng.lng(),
tst: tst,
addr: event.feature.getProperty('address'),
};
var dt = moment.utc(tst * 1000).local();
data['fulldate'] = dt.format("DD MMM YYYY HH:mm:ss");
var t = "<img class='img-circle' src='data:image/png;base64,{{ face }}' height='20' width='20' />";
var t = "{{ addr }}<br/>{{ lat }},{{lon}} {{ fulldate }}";
infowindow.setContent(Mustache.render(t, data));
infowindow.setPosition(event.latLng);
infowindow.open(map);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
+2
View File
@@ -18,6 +18,8 @@
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
<script src="../table/js/mustache.js"></script>
<script src="../table/js/moment.min.js"></script>
<script src="functions.js"></script>
</head>
<body>
+7 -2
View File
@@ -852,7 +852,7 @@ void locations(char *filename, JsonNode *obj, JsonNode *arr, time_t s_lo, time_t
*
*/
static void append_to_feature_array(JsonNode *features, double lat, double lon, char *tid, char *addr)
static void append_to_feature_array(JsonNode *features, double lat, double lon, char *tid, char *addr, long tst)
{
JsonNode *geom, *props, *f = json_mkobject();
@@ -868,6 +868,7 @@ static void append_to_feature_array(JsonNode *features, double lat, double lon,
props = json_mkobject();
json_append_member(props, "name", json_mkstring(tid));
json_append_member(props, "address", json_mkstring(addr));
json_append_member(props, "tst", json_mknumber(tst));
json_append_member(f, "geometry", geom);
json_append_member(f, "properties", props);
@@ -890,6 +891,7 @@ JsonNode *geo_json(JsonNode *location_array)
json_foreach(one, location_array) {
double lat = 0.0, lon = 0.0;
char *addr = "", *tid = "";
long tst = 0;
if ((j = json_find_member(one, "lat")) != NULL) {
lat = j->number_;
@@ -904,8 +906,11 @@ JsonNode *geo_json(JsonNode *location_array)
if ((j = json_find_member(one, "addr")) != NULL) {
addr = j->string_;
}
if ((j = json_find_member(one, "tst")) != NULL) {
tst = j->number_;
}
append_to_feature_array(feature_array, lat, lon, tid, addr);
append_to_feature_array(feature_array, lat, lon, tid, addr, tst);
}
json_append_member(fcollection, "features", feature_array);