doctrine2-spatial how to use multilinestring type
I'm using Symfony 4 and Doctrine2-Spatial. The documentation configuration guide says:
Add the types and functions you need to your Symfony configuration file. The doctrine type names are not hardcoded."
And there is an example:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
I need to use MultiLineString type, but there is no such type class in CrEOFSpatialDBALTypesGeometry
directory. I've added MultiLineStringType (copy of LineStringType class) to my AppDoctrine
directory and added a line to doctrine config like this:
multilinestring: AppDoctrineMultiLineStringType
Then in my controller I do the following:
$parser = new CrEOFGeoWKTParser($multilinestring);
$geo = $parser->parse();
$path = new CrEOFSpatialPHPTypesGeometryMultiLineString($geo['value']);
$route->setPath($path); // The multilinestring field type
But then when I persist my doctrine entity, I got an exception
Geometry column values must implement GeometryInterface
Please help me. What am I doing wrong? The documentation is very poor...
UPD: If I put multilinestring data by native SQL query like this:
UPDATE Routes SET Path=PolyFromText(MULTILINESTRING (....)) WHERE Id=1
and then get data via ORM $entity->getPath()
I got a normal CrEOFSpatialPHPTypesGeometryMultiLineString
object. So I guess the problem is in my Controller where I trying to set MultiLineString object.
symfony doctrine2 doctrine
add a comment |
I'm using Symfony 4 and Doctrine2-Spatial. The documentation configuration guide says:
Add the types and functions you need to your Symfony configuration file. The doctrine type names are not hardcoded."
And there is an example:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
I need to use MultiLineString type, but there is no such type class in CrEOFSpatialDBALTypesGeometry
directory. I've added MultiLineStringType (copy of LineStringType class) to my AppDoctrine
directory and added a line to doctrine config like this:
multilinestring: AppDoctrineMultiLineStringType
Then in my controller I do the following:
$parser = new CrEOFGeoWKTParser($multilinestring);
$geo = $parser->parse();
$path = new CrEOFSpatialPHPTypesGeometryMultiLineString($geo['value']);
$route->setPath($path); // The multilinestring field type
But then when I persist my doctrine entity, I got an exception
Geometry column values must implement GeometryInterface
Please help me. What am I doing wrong? The documentation is very poor...
UPD: If I put multilinestring data by native SQL query like this:
UPDATE Routes SET Path=PolyFromText(MULTILINESTRING (....)) WHERE Id=1
and then get data via ORM $entity->getPath()
I got a normal CrEOFSpatialPHPTypesGeometryMultiLineString
object. So I guess the problem is in my Controller where I trying to set MultiLineString object.
symfony doctrine2 doctrine
add a comment |
I'm using Symfony 4 and Doctrine2-Spatial. The documentation configuration guide says:
Add the types and functions you need to your Symfony configuration file. The doctrine type names are not hardcoded."
And there is an example:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
I need to use MultiLineString type, but there is no such type class in CrEOFSpatialDBALTypesGeometry
directory. I've added MultiLineStringType (copy of LineStringType class) to my AppDoctrine
directory and added a line to doctrine config like this:
multilinestring: AppDoctrineMultiLineStringType
Then in my controller I do the following:
$parser = new CrEOFGeoWKTParser($multilinestring);
$geo = $parser->parse();
$path = new CrEOFSpatialPHPTypesGeometryMultiLineString($geo['value']);
$route->setPath($path); // The multilinestring field type
But then when I persist my doctrine entity, I got an exception
Geometry column values must implement GeometryInterface
Please help me. What am I doing wrong? The documentation is very poor...
UPD: If I put multilinestring data by native SQL query like this:
UPDATE Routes SET Path=PolyFromText(MULTILINESTRING (....)) WHERE Id=1
and then get data via ORM $entity->getPath()
I got a normal CrEOFSpatialPHPTypesGeometryMultiLineString
object. So I guess the problem is in my Controller where I trying to set MultiLineString object.
symfony doctrine2 doctrine
I'm using Symfony 4 and Doctrine2-Spatial. The documentation configuration guide says:
Add the types and functions you need to your Symfony configuration file. The doctrine type names are not hardcoded."
And there is an example:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
I need to use MultiLineString type, but there is no such type class in CrEOFSpatialDBALTypesGeometry
directory. I've added MultiLineStringType (copy of LineStringType class) to my AppDoctrine
directory and added a line to doctrine config like this:
multilinestring: AppDoctrineMultiLineStringType
Then in my controller I do the following:
$parser = new CrEOFGeoWKTParser($multilinestring);
$geo = $parser->parse();
$path = new CrEOFSpatialPHPTypesGeometryMultiLineString($geo['value']);
$route->setPath($path); // The multilinestring field type
But then when I persist my doctrine entity, I got an exception
Geometry column values must implement GeometryInterface
Please help me. What am I doing wrong? The documentation is very poor...
UPD: If I put multilinestring data by native SQL query like this:
UPDATE Routes SET Path=PolyFromText(MULTILINESTRING (....)) WHERE Id=1
and then get data via ORM $entity->getPath()
I got a normal CrEOFSpatialPHPTypesGeometryMultiLineString
object. So I guess the problem is in my Controller where I trying to set MultiLineString object.
symfony doctrine2 doctrine
symfony doctrine2 doctrine
edited Nov 12 at 13:49
asked Nov 12 at 5:46
Anton Zikov
1327
1327
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You may just change:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
into this:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
multilinestring: CrEOFSpatialDBALTypesGeometryMultiLineStringType
There is no class MultiLineStringType in folder CrEOFSpatialDBALTypesGeometry
– Anton Zikov
Nov 12 at 6:57
Does your ownMultiLineStringType
extend CrEOF'sGeometryType
?
– Trix
Nov 12 at 7:01
Yes, sure. There is the code: namespace AppDoctrine; use CrEOFSpatialDBALTypesGeometryType; class MultiLineStringType extends GeometryType { }
– Anton Zikov
Nov 12 at 7:04
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53256491%2fdoctrine2-spatial-how-to-use-multilinestring-type%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You may just change:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
into this:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
multilinestring: CrEOFSpatialDBALTypesGeometryMultiLineStringType
There is no class MultiLineStringType in folder CrEOFSpatialDBALTypesGeometry
– Anton Zikov
Nov 12 at 6:57
Does your ownMultiLineStringType
extend CrEOF'sGeometryType
?
– Trix
Nov 12 at 7:01
Yes, sure. There is the code: namespace AppDoctrine; use CrEOFSpatialDBALTypesGeometryType; class MultiLineStringType extends GeometryType { }
– Anton Zikov
Nov 12 at 7:04
add a comment |
You may just change:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
into this:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
multilinestring: CrEOFSpatialDBALTypesGeometryMultiLineStringType
There is no class MultiLineStringType in folder CrEOFSpatialDBALTypesGeometry
– Anton Zikov
Nov 12 at 6:57
Does your ownMultiLineStringType
extend CrEOF'sGeometryType
?
– Trix
Nov 12 at 7:01
Yes, sure. There is the code: namespace AppDoctrine; use CrEOFSpatialDBALTypesGeometryType; class MultiLineStringType extends GeometryType { }
– Anton Zikov
Nov 12 at 7:04
add a comment |
You may just change:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
into this:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
multilinestring: CrEOFSpatialDBALTypesGeometryMultiLineStringType
You may just change:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
into this:
doctrine:
dbal:
types:
geometry: CrEOFSpatialDBALTypesGeometryType
point: CrEOFSpatialDBALTypesGeometryPointType
polygon: CrEOFSpatialDBALTypesGeometryPolygonType
linestring: CrEOFSpatialDBALTypesGeometryLineStringType
multilinestring: CrEOFSpatialDBALTypesGeometryMultiLineStringType
answered Nov 12 at 6:54
Trix
9,69785073
9,69785073
There is no class MultiLineStringType in folder CrEOFSpatialDBALTypesGeometry
– Anton Zikov
Nov 12 at 6:57
Does your ownMultiLineStringType
extend CrEOF'sGeometryType
?
– Trix
Nov 12 at 7:01
Yes, sure. There is the code: namespace AppDoctrine; use CrEOFSpatialDBALTypesGeometryType; class MultiLineStringType extends GeometryType { }
– Anton Zikov
Nov 12 at 7:04
add a comment |
There is no class MultiLineStringType in folder CrEOFSpatialDBALTypesGeometry
– Anton Zikov
Nov 12 at 6:57
Does your ownMultiLineStringType
extend CrEOF'sGeometryType
?
– Trix
Nov 12 at 7:01
Yes, sure. There is the code: namespace AppDoctrine; use CrEOFSpatialDBALTypesGeometryType; class MultiLineStringType extends GeometryType { }
– Anton Zikov
Nov 12 at 7:04
There is no class MultiLineStringType in folder CrEOFSpatialDBALTypesGeometry
– Anton Zikov
Nov 12 at 6:57
There is no class MultiLineStringType in folder CrEOFSpatialDBALTypesGeometry
– Anton Zikov
Nov 12 at 6:57
Does your own
MultiLineStringType
extend CrEOF's GeometryType
?– Trix
Nov 12 at 7:01
Does your own
MultiLineStringType
extend CrEOF's GeometryType
?– Trix
Nov 12 at 7:01
Yes, sure. There is the code: namespace AppDoctrine; use CrEOFSpatialDBALTypesGeometryType; class MultiLineStringType extends GeometryType { }
– Anton Zikov
Nov 12 at 7:04
Yes, sure. There is the code: namespace AppDoctrine; use CrEOFSpatialDBALTypesGeometryType; class MultiLineStringType extends GeometryType { }
– Anton Zikov
Nov 12 at 7:04
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53256491%2fdoctrine2-spatial-how-to-use-multilinestring-type%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown