tilemill-project / tilemill

TileMill is a modern map design studio
https://tilemill-project.github.io/tilemill/
BSD 3-Clause "New" or "Revised" License
3.12k stars 527 forks source link

Export labels as SVG text instead of glyphs #2321

Open brendensoares opened 10 years ago

brendensoares commented 10 years ago

Is it possible to export labels as SVG text objects instead of linked glyph paths?

I'd like to be able to edit the SVG labels after exporting from tilemill.

Thanks :]

springmeyer commented 10 years ago

This is a feature that would need to be added to Mapnik to be possible in TileMill. I'm aware that @isti757 has recently added this support to Mapnik. @isti757 is your patch available anywhere?

isti757 commented 10 years ago

@springmeyer I would gladly share the patch, but this issue https://github.com/mapnik/mapnik/issues/2244#issuecomment-43396346 doesn't allow

springmeyer commented 10 years ago

@isti757 thanks for your thoughts. TileMill currently uses Mapnik 2.3.x not master, so the patch would be more appropriate (and likely easier for now) against 2.3.x. But definitely still want to solve mapnik/mapnik#2244.

isti757 commented 10 years ago

@springmeyer how can i add my patch to 2.3.x?

On Fri, Jun 20, 2014 at 4:58 PM, Dane Springmeyer notifications@github.com wrote:

@isti757 https://github.com/isti757 thanks for your thoughts. TileMill currently uses Mapnik 2.3.x not master, so the patch would be more appropriate (and likely easier for now) against 2.3.x. But definitely still want to solve mapnik/mapnik#2244 https://github.com/mapnik/mapnik/issues/2244.

— Reply to this email directly or view it on GitHub https://github.com/mapbox/tilemill/issues/2321#issuecomment-46687766.

springmeyer commented 10 years ago

@isti757 like this:

git clone https://github.com/mapnik/mapnik.git
cd mapnik
git checkout 2.3.x
# make changes to mapnik source code
# then make sure tests pass
make test
# then create a diff
git diff > mypatch.diff

Send me the mypatch.diff

isti757 commented 10 years ago

seems that 2.3.x also uses mapnik::keys get_key(std::string const& name); to get the symbolizer properties. I cloned mapnik as you suggested and the following methods are non-existent:

text_symbolizer const& sym

sym.get_text_ratio() sym.get_face_name() sym.get_fontset()->get_name() sym.get_character_spacing() sym.get_text_transform() sym.get_text_size() sym.get_halo_fill()

On Fri, Jun 20, 2014 at 5:36 PM, Dane Springmeyer notifications@github.com wrote:

@isti757 https://github.com/isti757 like this:

git clone https://github.com/mapnik/mapnik.git cd mapnik

make changes to mapnik source code, then do

then make sure tests pass

make test

then create a diff

git diff > mypatch.diff

Send me the mypatch.diff

— Reply to this email directly or view it on GitHub https://github.com/mapbox/tilemill/issues/2321#issuecomment-46692541.

springmeyer commented 10 years ago

sorry, missed the line git checkout 2.3.x. Added above.

isti757 commented 10 years ago

seems there are some files missing in 2.3.x that are necessary for the patch:

https://github.com/mapnik/mapnik/blob/2.3.x/include/mapnik/text/harfbuzz_shaper.hpp https://github.com/mapnik/mapnik/blob/2.3.x/include/mapnik/text/glyph_info.hpp https://github.com/mapnik/mapnik/blob/2.3.x/include/mapnik/text/icu_shaper.hpp

we were working against the master branch that was checked out Dec 21 2013

On Mon, Jun 23, 2014 at 4:56 AM, Dane Springmeyer notifications@github.com wrote:

sorry, missed the line git checkout 2.3.x. Added above.

— Reply to this email directly or view it on GitHub https://github.com/mapbox/tilemill/issues/2321#issuecomment-46802404.

springmeyer commented 10 years ago

@isti757 can you post your path to a gist (https://gist.github.com/) and I can try to figure out how to apply to master branch then?

isti757 commented 10 years ago

@springmeyer done. here is the link: https://gist.github.com/isti757/ff2b4f5020a24be9a497. let me know if I can help somehow.

On Tue, Jun 24, 2014 at 6:48 AM, Dane Springmeyer notifications@github.com wrote:

@isti757 https://github.com/isti757 can you post your path to a gist ( https://gist.github.com/) and I can try to figure out how to apply to master branch then?

— Reply to this email directly or view it on GitHub https://github.com/mapbox/tilemill/issues/2321#issuecomment-46931765.