Jqnatividad has uploaded a new change for review.
https://gerrit.wikimedia.org/r/63858
Change subject: Added extended handling of MongoDB results. If an answer column
is an array, return as JSON. If an answer column is a GeoJSON geometry, return
as a string Maps can understand, i.e. latlong pairs delimited by colons.
Otherwise, return as usual - as a strin
......................................................................
Added extended handling of MongoDB results. If an answer column is an array,
return as JSON. If an answer column is a GeoJSON geometry, return as a string
Maps can understand, i.e. latlong pairs delimited by colons.
Otherwise, return as usual - as a string literal.
Change-Id: If4198035f06ee8134620457cbb8e00a67f01cd0f
---
M ED_Utils.php
1 file changed, 19 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ExternalData
refs/changes/58/63858/1
diff --git a/ED_Utils.php b/ED_Utils.php
index a4df405..cfcb1c4 100644
--- a/ED_Utils.php
+++ b/ED_Utils.php
@@ -356,7 +356,25 @@
$values = array();
foreach ( $resultsCursor as $doc ) {
foreach ( $columns as $column ) {
- $values[$column][] = $doc[$column];
+ // if MongoDB returns an array for a column, do
some extra processing
+ if (is_array($doc[$column])) {
+ // check if its GeoJSON geometry.
http://www.geojson.org/geojson-spec.html#geometry-objects
+ // If so, return it in a format that
Maps can understand
+ if ($column == 'geometry' &&
array_key_exists('coordinates', $doc['geometry'])) {
+ $coordinates =
$doc['geometry']['coordinates'][0];
+ $sgeometry = '';
+ foreach ($coordinates as
$coordinate) {
+ $sgeometry .=
$coordinate[1] . ',' . $coordinate[0] . ':';
+ }
+ $values[$column][] =
substr($sgeometry,0,strlen($sgeometry)-1);
+ } else {
+ // just return it as a JSON
string - the lingua franca of MongoDB
+ $values[$column][] =
json_encode($doc[$column]);
+ }
+ } else {
+ // its a simple literal
+ $values[$column][] = $doc[$column];
+ }
}
}
--
To view, visit https://gerrit.wikimedia.org/r/63858
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If4198035f06ee8134620457cbb8e00a67f01cd0f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ExternalData
Gerrit-Branch: master
Gerrit-Owner: Jqnatividad <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits