Comments (5)
Responding late, I know. Sorry about that.
I'm not sure about defining a const
, but how about adding a PointInterface
? I've been thinking of ways to customize the Geometry
classes and interfaces feels like the right way to go.
from laravel-mysql-spatial.
Thanks for getting back on this. Has been quite some time since I last worked on this stuff. I'm not a PHP pro by any stretch (more of a .NET guy), but I do like the idea of having interfaces that all geometry classes implement. I'm still thinking about how this will be used to store a nullable Point type. Can u shed some light on your plan?
from laravel-mysql-spatial.
If your goal is to store a null
Point
in the database, unfortunately the limitation is on MySQL; I mean, as long as you want to keep the spatial index.
Now, I didn't look into this yet, but if we add a PointInterface
, we could create variations of Points, for example, the NullPoint
, NorthPole
, SouthPole
(all implementing PointInterface
). You can then add these custom points to the GeometryCollections
but not save them to the database.
I've been getting requests to be able to flip lat/lng in the helpers and having a PointInterface
might help.
PS: what are the north pole coordinates you're trying to insert?
from laravel-mysql-spatial.
I'm not trying to insert null
into that column, I know that's not possible as long as I want to use index on that column. So my alternate plan was to use a far off value as a representation of null; North Pole was one such value that will not be needed by any real location in my case, so I thought it would be a good candidate to represent null
. I believe I was using (0, -90)
or something like that as my null value.
from laravel-mysql-spatial.
Ah, grabbed my code. Here is a small helper class I had created then:
<?php
namespace App;
class NullablePoint extends \Grimzy\LaravelMysqlSpatial\Types\Point
{
public static function NORTHPOLE()
{
return new \Grimzy\LaravelMysqlSpatial\Types\Point(90, 0);
}
public static function fromCommaSeparatedPair($pair)
{
list($lng, $lat) = explode(',', trim($pair, "\t\n\r \x0B()"));
return new static((float) trim($lat), (float) trim($lng));
}
}
?>
I'd then use it as the default null value of the spatial column in my create function:
$User->current_location = NullablePoint::NORTHPOLE();
from laravel-mysql-spatial.
Related Issues (20)
- This makes funny things to the DB, and then break stuff…
- Syntax error with Laravel 8, MariaDB 10.6 and SRID HOT 2
- Migration from 4.X to 5.0.0 breaks SRID HOT 2
- Error in save or retrieve HOT 1
- Not able to update geometry field with MultiPoint HOT 1
- Does it work with PHP8.1 ? HOT 4
- Laravel 9 Support HOT 19
- MariaDB doesnt support creating a geometrycolumn with an SRID
- Polygon GeoJson String Validation
- laravel 9 HOT 2
- Invalid parameter value: 3037 Invalid GIS data provided to function st_geometryfromtext
- Cast request spatial data to Eloquent model via fill method is not possible
- Cast request spatial data to Eloquent model via fill method is not possible HOT 1
- Should support sqlite / spatiallite
- {"message":"Call to a member function getLat() on string"}
- Slow Cache retrieval
- Laravel 10 HOT 3
- Laravel 9 Issue HOT 3
- Any Update for Laravel 10 HOT 2
- Type error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laravel-mysql-spatial.