Move posts in categories and add post about buffered poyline
This commit is contained in:
parent
f66e90083c
commit
13609812b6
5 changed files with 53 additions and 1 deletions
|
@ -2,6 +2,7 @@
|
||||||
layout: post
|
layout: post
|
||||||
title: Joining a List of Binaries in Erlang
|
title: Joining a List of Binaries in Erlang
|
||||||
description: "Description and implementation of a function that joins a list of binaries."
|
description: "Description and implementation of a function that joins a list of binaries."
|
||||||
|
category: posts
|
||||||
tags: [erlang, programming, english]
|
tags: [erlang, programming, english]
|
||||||
image:
|
image:
|
||||||
feature: abstract-3.jpg
|
feature: abstract-3.jpg
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
layout: post
|
layout: post
|
||||||
title: Exchange Reverse Proxy Using nginx
|
title: Exchange Reverse Proxy Using nginx
|
||||||
description: "Simple nginx configuration that allows you to proxy most of Microsoft Exchange."
|
description: "Simple nginx configuration that allows you to proxy most of Microsoft Exchange."
|
||||||
|
category: posts
|
||||||
tags: [nginx, exchange, ops, english]
|
tags: [nginx, exchange, ops, english]
|
||||||
image:
|
image:
|
||||||
feature: abstract-10.jpg
|
feature: abstract-10.jpg
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Telegram and Security
|
title: Telegram and Security
|
||||||
description: "Simple nginx configuration that allows you to proxy most of Microsoft Exchange."
|
description: "Some links regarding Telegram and its security model."
|
||||||
|
category: posts
|
||||||
tags: [telegram, whatsapp, app, english]
|
tags: [telegram, whatsapp, app, english]
|
||||||
image:
|
image:
|
||||||
feature: abstract-2.jpg
|
feature: abstract-2.jpg
|
||||||
|
|
49
_posts/2014-03-23-buffered-polyline.md
Normal file
49
_posts/2014-03-23-buffered-polyline.md
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Buffered Polyline
|
||||||
|
description: "Blow up a polyline to search inside the generated polygon."
|
||||||
|
category: posts
|
||||||
|
tags: [javascript, programming, english]
|
||||||
|
image:
|
||||||
|
feature: abstract-7.jpg
|
||||||
|
credit: dargadgetz
|
||||||
|
creditlink: http://www.dargadgetz.com/ios-7-abstract-wallpaper-pack-for-iphone-5-and-ipod-touch-retina/
|
||||||
|
comments: true
|
||||||
|
share: true
|
||||||
|
---
|
||||||
|
|
||||||
|
At work, we needed a simple way to buffer a polyline in order to search for stuff along the route from A to B. I'll explain how we used Google's Map API and [JSTS](https://github.com/bjornharrtell/jsts) in order to achieve this easily.
|
||||||
|
|
||||||
|
The first thing we had to do, was to "transform" each element in the overview_path (which the `DirectionsService` returns) to GeoJSON, because that's what JSTS understands.
|
||||||
|
|
||||||
|
{% highlight javascript linenos %}
|
||||||
|
var overviewPath = response.routes[0].overview_path,
|
||||||
|
overviewPathGeo = [];
|
||||||
|
for(var i = 0; i < overviewPath.length; i++) {
|
||||||
|
overviewPathGeo.push(
|
||||||
|
[overviewPath[i].lng(), overviewPath[i].lat()]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
The next step was getting `overviewPathGeo` into JSTS and letting it do the work of buffering the line.
|
||||||
|
|
||||||
|
{% highlight javascript linenos %}
|
||||||
|
var distance = 10/111.12, // Roughly 10km
|
||||||
|
geoInput = {
|
||||||
|
type: "LineString",
|
||||||
|
coordinates: overviewPathGeo
|
||||||
|
};
|
||||||
|
var geoReader = new jsts.io.GeoJSONReader(),
|
||||||
|
geoWriter = new jsts.io.GeoJSONWriter();
|
||||||
|
var geometry = geoReader.read(geoInput).buffer(distance);
|
||||||
|
var polygon = geoWriter.write(geometry);
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
The `polygon` variable now contains a polygon that neatly fits around the `overviewPath`, with a *distance* (buffer size) of roughly 10km.
|
||||||
|
|
||||||
|
Since it is nested, you need to call `polygon.coordinates[0]` in order to get back the coordinates of the polygon (as GeoJSON).
|
||||||
|
|
||||||
|
You could then use the the coordinates to draw the generated polygon on the map (along with the route), in order to produce something like this:
|
||||||
|
|
||||||
|
![Image of the resulting polygon]({{ site.url }}/assets/img/buffered-polyline-1.png)
|
BIN
assets/img/buffered-polyline-1.png
Normal file
BIN
assets/img/buffered-polyline-1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 228 KiB |
Loading…
Reference in a new issue