{"action":"created","issue":{"url":"https://api.github.com/repos/libgeos/libgeos/issues/45","labels_url":"https://api.github.com/repos/libgeos/libgeos/issues/45/labels{/name}","comments_url":"https://api.github.com/repos/libgeos/libgeos/issues/45/comments","events_url":"https://api.github.com/repos/libgeos/libgeos/issues/45/events","html_url":"https://github.com/libgeos/libgeos/pull/45","id":64661587,"number":45,"title":"Add support for M values","user":{"login":"manisandro","id":1298852,"avatar_url":"https://avatars.githubusercontent.com/u/1298852?v=3","gravatar_id":"","url":"https://api.github.com/users/manisandro","html_url":"https://github.com/manisandro","followers_url":"https://api.github.com/users/manisandro/followers","following_url":"https://api.github.com/users/manisandro/following{/other_user}","gists_url":"https://api.github.com/users/manisandro/gists{/gist_id}","starred_url":"https://api.github.com/users/manisandro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/manisandro/subscriptions","organizations_url":"https://api.github.com/users/manisandro/orgs","repos_url":"https://api.github.com/users/manisandro/repos","events_url":"https://api.github.com/users/manisandro/events{/privacy}","received_events_url":"https://api.github.com/users/manisandro/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":19,"created_at":"2015-03-27T00:09:50Z","updated_at":"2015-06-05T23:38:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/libgeos/libgeos/pulls/45","html_url":"https://github.com/libgeos/libgeos/pull/45","diff_url":"https://github.com/libgeos/libgeos/pull/45.diff","patch_url":"https://github.com/libgeos/libgeos/pull/45.patch"},"body":"RFC\r\n\r\nOverall remark: the patch is pretty invasive for the reason that it adds support for M-values with and without Z-values (the occasional reference to future M-value support in the original code seem to indicate that a possible 3rd dimension was always to be Z and a possible 4th dimension always M).\r\n\r\nAll tests still pass with this patch.\r\n\r\nIn short, this patch removes internal `dimension` variables, using instead variables such as `hasZ` and `hasM` (with `dimension` getters then returning `2 + hasZ + hasM`). It adjusts WKT and WKB readers to correctly handle combinations of XY, XYZ, XYM and XYZM geometries. It also introduces various `interpolateM` style functions, which are copies of the respective `interpolateZ` functions (with the exception of `ElevationMatrix` related methods which I suppose don't make sense for M values).\r\n\r\nA C++ API break was introduced with the `Coordinate{Array}Sequence` constructors. For the rest, compatibility is preserved.\r\n\r\nQuestions:\r\n- Does the old WKT style only handle possible 3D values (i.e. `POINT (1 2 3)`), or also Z *and* M (i.e. `POINT (1 2 3 4)`)?\r\n- C-API: how to deal with XYM geometries? This needs to be considered in the following functions:\r\n\r\n    GEOSCoordSeq_create(handle, size, dims)\r\n    GEOSWKTWriter_setOutputDimension(handle, writer, dim)\r\n    GEOSWKBWriter_setOutputDimension(writer, newDimension)\r\n\r\nBoth these now accept `4` as dimension for XYZM geometries, and `3` means XYZ as before. For XYM geometries, I suppose the only solution is to add new functions such as \r\n\r\n    GEOSCoordSeq_create_zm(handle, size, hasZ, hasM)\r\n    GEOSWKTWriter_setOutputDimension_zm(handle, writer, hasZ, hasM)\r\n    GEOSWKBWriter_setOutputDimension_zm(writer, hasZ, hasM)"},"comment":{"url":"https://api.github.com/repos/libgeos/libgeos/issues/comments/109483238","html_url":"https://github.com/libgeos/libgeos/pull/45#issuecomment-109483238","issue_url":"https://api.github.com/repos/libgeos/libgeos/issues/45","id":109483238,"user":{"login":"manisandro","id":1298852,"avatar_url":"https://avatars.githubusercontent.com/u/1298852?v=3","gravatar_id":"","url":"https://api.github.com/users/manisandro","html_url":"https://github.com/manisandro","followers_url":"https://api.github.com/users/manisandro/followers","following_url":"https://api.github.com/users/manisandro/following{/other_user}","gists_url":"https://api.github.com/users/manisandro/gists{/gist_id}","starred_url":"https://api.github.com/users/manisandro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/manisandro/subscriptions","organizations_url":"https://api.github.com/users/manisandro/orgs","repos_url":"https://api.github.com/users/manisandro/repos","events_url":"https://api.github.com/users/manisandro/events{/privacy}","received_events_url":"https://api.github.com/users/manisandro/received_events","type":"User","site_admin":false},"created_at":"2015-06-05T23:38:02Z","updated_at":"2015-06-05T23:38:02Z","body":"`GEOS_MVALUES ` done. Nice output: you mean the markdown formatting (just indent by four spaces) or the command output itself (which is what I get by just running `time make check`)?"}}