Geography in 3D perspective
$begingroup$
I would like to build a GeoGraphics
map showing a z-elevated perspective (e.g. the view from a plane). Specifically, I'm looking to use multiple GeoMarker
's (with custom graphics) in the pseudo-3D perspective.
For example, consider this plot of the Eiffel Tower:
I would like to reproduce it in a 3D perspective like this:
Both examples come from google maps, I’m not sure if this is possible in 11.3, but would love to know.
geography geographics
$endgroup$
add a comment |
$begingroup$
I would like to build a GeoGraphics
map showing a z-elevated perspective (e.g. the view from a plane). Specifically, I'm looking to use multiple GeoMarker
's (with custom graphics) in the pseudo-3D perspective.
For example, consider this plot of the Eiffel Tower:
I would like to reproduce it in a 3D perspective like this:
Both examples come from google maps, I’m not sure if this is possible in 11.3, but would love to know.
geography geographics
$endgroup$
add a comment |
$begingroup$
I would like to build a GeoGraphics
map showing a z-elevated perspective (e.g. the view from a plane). Specifically, I'm looking to use multiple GeoMarker
's (with custom graphics) in the pseudo-3D perspective.
For example, consider this plot of the Eiffel Tower:
I would like to reproduce it in a 3D perspective like this:
Both examples come from google maps, I’m not sure if this is possible in 11.3, but would love to know.
geography geographics
$endgroup$
I would like to build a GeoGraphics
map showing a z-elevated perspective (e.g. the view from a plane). Specifically, I'm looking to use multiple GeoMarker
's (with custom graphics) in the pseudo-3D perspective.
For example, consider this plot of the Eiffel Tower:
I would like to reproduce it in a 3D perspective like this:
Both examples come from google maps, I’m not sure if this is possible in 11.3, but would love to know.
geography geographics
geography geographics
edited 2 days ago
M.R.
asked Mar 17 at 19:40
M.R.M.R.
15.7k558188
15.7k558188
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
You could use an orthographic with a custom centering:
GeoGraphics[
Entity["Building", "EiffelTower::5h9w8"],
GeoProjection -> {"Orthographic", "Centering" -> GeoPosition[{-30.858`, 2.295`}]},
GeoZoomLevel -> 18,
GeoRange -> {{48.852`, 48.872`}, {2.2895`, 2.2995`}}
]
Note that this does incorporate the curvature of the earth and will be noticeable over larger areas.
If you're after something flat, you could always inset the tiles in 3D and pick custom View*
values. Note I pad the range to allow the map to be seen at an angle:
im = GeoImage[
Entity["Building", "EiffelTower::5h9w8"],
"StreetMapNoLabels",
GeoZoomLevel -> 17,
GeoRange -> {{48.852`, 48.872`}, {2.285`, 2.305`}}
];
{x, y} = ImageDimensions[im];
Graphics3D[
{Texture[im], EdgeForm, Polygon[{{0, 0, 0}, {x, 0, 0}, {x, y, 0}, {0, y, 0}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]},
Background -> Black,
Boxed -> False,
Lighting -> "Neutral",
ViewAngle -> 0.03233723833101999`,
ViewCenter -> {{0.5`, 0.5`, 0.5`}, {1.4456583184354543`, 0.7806170277104297`}},
ViewPoint -> {1.076788325190908`, -3.1635309749673284`, 0.5316001064285271`},
ViewVertical -> {0.00011882147473772082`, -0.00015290540260965785`, 0.9999999812506973`}
]
Here's a way to 'lift' a GeoGraphics
object into 3D. My solution is probably not robust but works for simple cases:
GeoGraphics3D[args__] := Block[{g2d, g3d, ε = .0001},
g2d = GeoGraphics[args][[1, 1]] /. {___, Opacity[0], ___} -> {};
g3d = g2d /. {
expr : _[VertexTextureCoordinates, _] :> expr,
Inset[g_, {x_, y_}, opos_, Offset[o_]] :> Inset[g, RotationTransform[[CurlyEpsilon], {0, -1, 0}]@{x, y, 0}, opos, .5 o],
{x_Real, y_} :> RotationTransform[[CurlyEpsilon], {0, -1, 0}][{x, y, 0}]
};
Graphics3D[
g3d,
Boxed -> False,
ImageSize -> Large,
Lighting -> {{"Ambient", White}}
]
]
Example:
eif = Entity["Building", "EiffelTower::5h9w8"];
Show[
GeoGraphics3D[
{GeoMarker[eif], Text[Style["Eiffel Tower", ColorData[112, 1], 14], eif, {0, 1}]},
GeoRange -> Quantity[1000, "Meters"],
GeoZoomLevel -> 17
],
ViewAngle -> 2°,
ViewPoint -> {1.75`, -2.85`, 0.55`}
]
$endgroup$
$begingroup$
This isn't working with my geomarkers, is there some hack for that?
$endgroup$
– M.R.
2 days ago
$begingroup$
Ah I overlooked that part of your question, sorry. I’m assuming you want them orthogonal to the map facing the view point?
$endgroup$
– Chip Hurst
2 days ago
$begingroup$
Yup, just like that (and a drop shadow if possible ;))
$endgroup$
– M.R.
2 days ago
$begingroup$
I was hasty in accepting, without GeoMarkers I can't do what I wanted - if you can add that I'll accept it
$endgroup$
– M.R.
2 days ago
2
$begingroup$
@M.R. See my edit.
$endgroup$
– Chip Hurst
2 days ago
|
show 3 more comments
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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%2fmathematica.stackexchange.com%2fquestions%2f193444%2fgeography-in-3d-perspective%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
$begingroup$
You could use an orthographic with a custom centering:
GeoGraphics[
Entity["Building", "EiffelTower::5h9w8"],
GeoProjection -> {"Orthographic", "Centering" -> GeoPosition[{-30.858`, 2.295`}]},
GeoZoomLevel -> 18,
GeoRange -> {{48.852`, 48.872`}, {2.2895`, 2.2995`}}
]
Note that this does incorporate the curvature of the earth and will be noticeable over larger areas.
If you're after something flat, you could always inset the tiles in 3D and pick custom View*
values. Note I pad the range to allow the map to be seen at an angle:
im = GeoImage[
Entity["Building", "EiffelTower::5h9w8"],
"StreetMapNoLabels",
GeoZoomLevel -> 17,
GeoRange -> {{48.852`, 48.872`}, {2.285`, 2.305`}}
];
{x, y} = ImageDimensions[im];
Graphics3D[
{Texture[im], EdgeForm, Polygon[{{0, 0, 0}, {x, 0, 0}, {x, y, 0}, {0, y, 0}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]},
Background -> Black,
Boxed -> False,
Lighting -> "Neutral",
ViewAngle -> 0.03233723833101999`,
ViewCenter -> {{0.5`, 0.5`, 0.5`}, {1.4456583184354543`, 0.7806170277104297`}},
ViewPoint -> {1.076788325190908`, -3.1635309749673284`, 0.5316001064285271`},
ViewVertical -> {0.00011882147473772082`, -0.00015290540260965785`, 0.9999999812506973`}
]
Here's a way to 'lift' a GeoGraphics
object into 3D. My solution is probably not robust but works for simple cases:
GeoGraphics3D[args__] := Block[{g2d, g3d, ε = .0001},
g2d = GeoGraphics[args][[1, 1]] /. {___, Opacity[0], ___} -> {};
g3d = g2d /. {
expr : _[VertexTextureCoordinates, _] :> expr,
Inset[g_, {x_, y_}, opos_, Offset[o_]] :> Inset[g, RotationTransform[[CurlyEpsilon], {0, -1, 0}]@{x, y, 0}, opos, .5 o],
{x_Real, y_} :> RotationTransform[[CurlyEpsilon], {0, -1, 0}][{x, y, 0}]
};
Graphics3D[
g3d,
Boxed -> False,
ImageSize -> Large,
Lighting -> {{"Ambient", White}}
]
]
Example:
eif = Entity["Building", "EiffelTower::5h9w8"];
Show[
GeoGraphics3D[
{GeoMarker[eif], Text[Style["Eiffel Tower", ColorData[112, 1], 14], eif, {0, 1}]},
GeoRange -> Quantity[1000, "Meters"],
GeoZoomLevel -> 17
],
ViewAngle -> 2°,
ViewPoint -> {1.75`, -2.85`, 0.55`}
]
$endgroup$
$begingroup$
This isn't working with my geomarkers, is there some hack for that?
$endgroup$
– M.R.
2 days ago
$begingroup$
Ah I overlooked that part of your question, sorry. I’m assuming you want them orthogonal to the map facing the view point?
$endgroup$
– Chip Hurst
2 days ago
$begingroup$
Yup, just like that (and a drop shadow if possible ;))
$endgroup$
– M.R.
2 days ago
$begingroup$
I was hasty in accepting, without GeoMarkers I can't do what I wanted - if you can add that I'll accept it
$endgroup$
– M.R.
2 days ago
2
$begingroup$
@M.R. See my edit.
$endgroup$
– Chip Hurst
2 days ago
|
show 3 more comments
$begingroup$
You could use an orthographic with a custom centering:
GeoGraphics[
Entity["Building", "EiffelTower::5h9w8"],
GeoProjection -> {"Orthographic", "Centering" -> GeoPosition[{-30.858`, 2.295`}]},
GeoZoomLevel -> 18,
GeoRange -> {{48.852`, 48.872`}, {2.2895`, 2.2995`}}
]
Note that this does incorporate the curvature of the earth and will be noticeable over larger areas.
If you're after something flat, you could always inset the tiles in 3D and pick custom View*
values. Note I pad the range to allow the map to be seen at an angle:
im = GeoImage[
Entity["Building", "EiffelTower::5h9w8"],
"StreetMapNoLabels",
GeoZoomLevel -> 17,
GeoRange -> {{48.852`, 48.872`}, {2.285`, 2.305`}}
];
{x, y} = ImageDimensions[im];
Graphics3D[
{Texture[im], EdgeForm, Polygon[{{0, 0, 0}, {x, 0, 0}, {x, y, 0}, {0, y, 0}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]},
Background -> Black,
Boxed -> False,
Lighting -> "Neutral",
ViewAngle -> 0.03233723833101999`,
ViewCenter -> {{0.5`, 0.5`, 0.5`}, {1.4456583184354543`, 0.7806170277104297`}},
ViewPoint -> {1.076788325190908`, -3.1635309749673284`, 0.5316001064285271`},
ViewVertical -> {0.00011882147473772082`, -0.00015290540260965785`, 0.9999999812506973`}
]
Here's a way to 'lift' a GeoGraphics
object into 3D. My solution is probably not robust but works for simple cases:
GeoGraphics3D[args__] := Block[{g2d, g3d, ε = .0001},
g2d = GeoGraphics[args][[1, 1]] /. {___, Opacity[0], ___} -> {};
g3d = g2d /. {
expr : _[VertexTextureCoordinates, _] :> expr,
Inset[g_, {x_, y_}, opos_, Offset[o_]] :> Inset[g, RotationTransform[[CurlyEpsilon], {0, -1, 0}]@{x, y, 0}, opos, .5 o],
{x_Real, y_} :> RotationTransform[[CurlyEpsilon], {0, -1, 0}][{x, y, 0}]
};
Graphics3D[
g3d,
Boxed -> False,
ImageSize -> Large,
Lighting -> {{"Ambient", White}}
]
]
Example:
eif = Entity["Building", "EiffelTower::5h9w8"];
Show[
GeoGraphics3D[
{GeoMarker[eif], Text[Style["Eiffel Tower", ColorData[112, 1], 14], eif, {0, 1}]},
GeoRange -> Quantity[1000, "Meters"],
GeoZoomLevel -> 17
],
ViewAngle -> 2°,
ViewPoint -> {1.75`, -2.85`, 0.55`}
]
$endgroup$
$begingroup$
This isn't working with my geomarkers, is there some hack for that?
$endgroup$
– M.R.
2 days ago
$begingroup$
Ah I overlooked that part of your question, sorry. I’m assuming you want them orthogonal to the map facing the view point?
$endgroup$
– Chip Hurst
2 days ago
$begingroup$
Yup, just like that (and a drop shadow if possible ;))
$endgroup$
– M.R.
2 days ago
$begingroup$
I was hasty in accepting, without GeoMarkers I can't do what I wanted - if you can add that I'll accept it
$endgroup$
– M.R.
2 days ago
2
$begingroup$
@M.R. See my edit.
$endgroup$
– Chip Hurst
2 days ago
|
show 3 more comments
$begingroup$
You could use an orthographic with a custom centering:
GeoGraphics[
Entity["Building", "EiffelTower::5h9w8"],
GeoProjection -> {"Orthographic", "Centering" -> GeoPosition[{-30.858`, 2.295`}]},
GeoZoomLevel -> 18,
GeoRange -> {{48.852`, 48.872`}, {2.2895`, 2.2995`}}
]
Note that this does incorporate the curvature of the earth and will be noticeable over larger areas.
If you're after something flat, you could always inset the tiles in 3D and pick custom View*
values. Note I pad the range to allow the map to be seen at an angle:
im = GeoImage[
Entity["Building", "EiffelTower::5h9w8"],
"StreetMapNoLabels",
GeoZoomLevel -> 17,
GeoRange -> {{48.852`, 48.872`}, {2.285`, 2.305`}}
];
{x, y} = ImageDimensions[im];
Graphics3D[
{Texture[im], EdgeForm, Polygon[{{0, 0, 0}, {x, 0, 0}, {x, y, 0}, {0, y, 0}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]},
Background -> Black,
Boxed -> False,
Lighting -> "Neutral",
ViewAngle -> 0.03233723833101999`,
ViewCenter -> {{0.5`, 0.5`, 0.5`}, {1.4456583184354543`, 0.7806170277104297`}},
ViewPoint -> {1.076788325190908`, -3.1635309749673284`, 0.5316001064285271`},
ViewVertical -> {0.00011882147473772082`, -0.00015290540260965785`, 0.9999999812506973`}
]
Here's a way to 'lift' a GeoGraphics
object into 3D. My solution is probably not robust but works for simple cases:
GeoGraphics3D[args__] := Block[{g2d, g3d, ε = .0001},
g2d = GeoGraphics[args][[1, 1]] /. {___, Opacity[0], ___} -> {};
g3d = g2d /. {
expr : _[VertexTextureCoordinates, _] :> expr,
Inset[g_, {x_, y_}, opos_, Offset[o_]] :> Inset[g, RotationTransform[[CurlyEpsilon], {0, -1, 0}]@{x, y, 0}, opos, .5 o],
{x_Real, y_} :> RotationTransform[[CurlyEpsilon], {0, -1, 0}][{x, y, 0}]
};
Graphics3D[
g3d,
Boxed -> False,
ImageSize -> Large,
Lighting -> {{"Ambient", White}}
]
]
Example:
eif = Entity["Building", "EiffelTower::5h9w8"];
Show[
GeoGraphics3D[
{GeoMarker[eif], Text[Style["Eiffel Tower", ColorData[112, 1], 14], eif, {0, 1}]},
GeoRange -> Quantity[1000, "Meters"],
GeoZoomLevel -> 17
],
ViewAngle -> 2°,
ViewPoint -> {1.75`, -2.85`, 0.55`}
]
$endgroup$
You could use an orthographic with a custom centering:
GeoGraphics[
Entity["Building", "EiffelTower::5h9w8"],
GeoProjection -> {"Orthographic", "Centering" -> GeoPosition[{-30.858`, 2.295`}]},
GeoZoomLevel -> 18,
GeoRange -> {{48.852`, 48.872`}, {2.2895`, 2.2995`}}
]
Note that this does incorporate the curvature of the earth and will be noticeable over larger areas.
If you're after something flat, you could always inset the tiles in 3D and pick custom View*
values. Note I pad the range to allow the map to be seen at an angle:
im = GeoImage[
Entity["Building", "EiffelTower::5h9w8"],
"StreetMapNoLabels",
GeoZoomLevel -> 17,
GeoRange -> {{48.852`, 48.872`}, {2.285`, 2.305`}}
];
{x, y} = ImageDimensions[im];
Graphics3D[
{Texture[im], EdgeForm, Polygon[{{0, 0, 0}, {x, 0, 0}, {x, y, 0}, {0, y, 0}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]},
Background -> Black,
Boxed -> False,
Lighting -> "Neutral",
ViewAngle -> 0.03233723833101999`,
ViewCenter -> {{0.5`, 0.5`, 0.5`}, {1.4456583184354543`, 0.7806170277104297`}},
ViewPoint -> {1.076788325190908`, -3.1635309749673284`, 0.5316001064285271`},
ViewVertical -> {0.00011882147473772082`, -0.00015290540260965785`, 0.9999999812506973`}
]
Here's a way to 'lift' a GeoGraphics
object into 3D. My solution is probably not robust but works for simple cases:
GeoGraphics3D[args__] := Block[{g2d, g3d, ε = .0001},
g2d = GeoGraphics[args][[1, 1]] /. {___, Opacity[0], ___} -> {};
g3d = g2d /. {
expr : _[VertexTextureCoordinates, _] :> expr,
Inset[g_, {x_, y_}, opos_, Offset[o_]] :> Inset[g, RotationTransform[[CurlyEpsilon], {0, -1, 0}]@{x, y, 0}, opos, .5 o],
{x_Real, y_} :> RotationTransform[[CurlyEpsilon], {0, -1, 0}][{x, y, 0}]
};
Graphics3D[
g3d,
Boxed -> False,
ImageSize -> Large,
Lighting -> {{"Ambient", White}}
]
]
Example:
eif = Entity["Building", "EiffelTower::5h9w8"];
Show[
GeoGraphics3D[
{GeoMarker[eif], Text[Style["Eiffel Tower", ColorData[112, 1], 14], eif, {0, 1}]},
GeoRange -> Quantity[1000, "Meters"],
GeoZoomLevel -> 17
],
ViewAngle -> 2°,
ViewPoint -> {1.75`, -2.85`, 0.55`}
]
edited 2 days ago
answered Mar 17 at 23:04
Chip HurstChip Hurst
22.5k15892
22.5k15892
$begingroup$
This isn't working with my geomarkers, is there some hack for that?
$endgroup$
– M.R.
2 days ago
$begingroup$
Ah I overlooked that part of your question, sorry. I’m assuming you want them orthogonal to the map facing the view point?
$endgroup$
– Chip Hurst
2 days ago
$begingroup$
Yup, just like that (and a drop shadow if possible ;))
$endgroup$
– M.R.
2 days ago
$begingroup$
I was hasty in accepting, without GeoMarkers I can't do what I wanted - if you can add that I'll accept it
$endgroup$
– M.R.
2 days ago
2
$begingroup$
@M.R. See my edit.
$endgroup$
– Chip Hurst
2 days ago
|
show 3 more comments
$begingroup$
This isn't working with my geomarkers, is there some hack for that?
$endgroup$
– M.R.
2 days ago
$begingroup$
Ah I overlooked that part of your question, sorry. I’m assuming you want them orthogonal to the map facing the view point?
$endgroup$
– Chip Hurst
2 days ago
$begingroup$
Yup, just like that (and a drop shadow if possible ;))
$endgroup$
– M.R.
2 days ago
$begingroup$
I was hasty in accepting, without GeoMarkers I can't do what I wanted - if you can add that I'll accept it
$endgroup$
– M.R.
2 days ago
2
$begingroup$
@M.R. See my edit.
$endgroup$
– Chip Hurst
2 days ago
$begingroup$
This isn't working with my geomarkers, is there some hack for that?
$endgroup$
– M.R.
2 days ago
$begingroup$
This isn't working with my geomarkers, is there some hack for that?
$endgroup$
– M.R.
2 days ago
$begingroup$
Ah I overlooked that part of your question, sorry. I’m assuming you want them orthogonal to the map facing the view point?
$endgroup$
– Chip Hurst
2 days ago
$begingroup$
Ah I overlooked that part of your question, sorry. I’m assuming you want them orthogonal to the map facing the view point?
$endgroup$
– Chip Hurst
2 days ago
$begingroup$
Yup, just like that (and a drop shadow if possible ;))
$endgroup$
– M.R.
2 days ago
$begingroup$
Yup, just like that (and a drop shadow if possible ;))
$endgroup$
– M.R.
2 days ago
$begingroup$
I was hasty in accepting, without GeoMarkers I can't do what I wanted - if you can add that I'll accept it
$endgroup$
– M.R.
2 days ago
$begingroup$
I was hasty in accepting, without GeoMarkers I can't do what I wanted - if you can add that I'll accept it
$endgroup$
– M.R.
2 days ago
2
2
$begingroup$
@M.R. See my edit.
$endgroup$
– Chip Hurst
2 days ago
$begingroup$
@M.R. See my edit.
$endgroup$
– Chip Hurst
2 days ago
|
show 3 more comments
Thanks for contributing an answer to Mathematica Stack Exchange!
- 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.
Use MathJax to format equations. MathJax reference.
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%2fmathematica.stackexchange.com%2fquestions%2f193444%2fgeography-in-3d-perspective%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