Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Maps Save Polygon and points in MySQL using PHP

Right now I have an application that allows users to draw a polygon on google maps. I need to save this polygon using PHP and MySQL but I'm unsure of best practices.

Should I enable spatial extensions and save the geometry? Should I save each vertical (lat/lng pair) in an array? Another approach I'm unaware of?

I'm wondering what the best practices are. Using MySQL spatial extensions seem daunting. It returns things in WKT and then I have to parse that text to make it do something else. It seems convoluted.

like image 388
Phil Salesses Avatar asked Mar 01 '11 22:03

Phil Salesses


2 Answers

It's best to think of your usage scenarios when planning out your storage layer.

This will help you figure out which queries you'll want your persistence layer to optimize for.

If you're going to handle lot's of queries like, "Find me all objects within this space". You may want to look at using the spatial extensions.

However, if most of the time you're simply drawing an object with a given id, simply saving the polygons as a json blob in the DB may do.

CREATE TABLE Polygons ( polygon_id int not null, vertices_json varchar(4096) )

like image 187
Saurav Avatar answered Nov 05 '22 14:11

Saurav


You can also use : google.maps.geometry.encoding to encode/compress paths

http://code.google.com/intl/fr/apis/maps/documentation/utilities/polylinealgorithm.html

I once used this to save in database thousands of directions and it is quite convenient.

like image 30
soju Avatar answered Nov 05 '22 15:11

soju