Giter Club home page Giter Club logo

osm-gps-map's Introduction

osm-gps-map is a Gtk mapping widget (and Python bindings) that when given
GPS co-ordinates, draws a GPS track, and points of interest on a moving map
display.

osm-gps-map Downloads map data from a number of websites, including
openstreetmap.org, openaerialmap.org and others and can be used to build
desktop mapping or geolocation applications.

osm-gps-map's People

Contributors

accumulator avatar andrewgee avatar caratorn avatar christophgysin avatar chrrrisw avatar dakk avatar derdakon avatar dpaleino avatar dreadnought avatar dumbbell avatar gniourf avatar gordonjcp avatar guillomovitch avatar hadleyrich avatar harbaum avatar johnny-bit avatar jspricke avatar lebedevri avatar mardy avatar nzjrs avatar pablocastellano avatar paolobenve avatar phweyland avatar sardemff7 avatar schneiderfelipe avatar smartyg avatar snoiraud avatar supercamel avatar tormodvolden avatar twolife avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

osm-gps-map's Issues

Drawing on top of map.

How I can draw on top of map with cairo, or display on the fly images created programmatically ?

png images not shown in windows

See mailing list

I came around a strange problem trying to add an image to a Map object.
When calling add_image I get the following error.

GtkWarning: gdk_drawable_real_draw_pixbuf: assertion `src_y >= 0 &&
src_y + height <= gdk_pixbuf_get_height (pixbuf)' failed
gtk.main()

I'm using the precompiled builds available at the website ( btw, can you
please fix the error on the link for the windows version of 0.7.3 ? ) or
actually the link that is provided in John's blog for 0.7.2 . The same
happens when trying to run some of your examples where add_image is
called..

No such errors using the linux version ( tested from source and packages
for 0.7.3 ).

Any ideas ?

I used the all-in-one bundle offered at
http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/ . So GTK+ is
2.22.x .

Your answer got me to check some more, the problem is more specific,
only occurs with .png format. jpeg images are rendered without any problem.

[PATCH] build cleanups

So, it looks like osm-gps-map would mostly be a pretty good fit to
FoxtrotGPS.

There are a few things that initially scared me but have turned out to
be non-issues and a few minor nits for which I'm preparing some patches
foryour review, but also a couple of other items that are still bothering me
and for which I don't have a solution on-hand.

... and the nits are, which patches attached at the end...:

  • The pkg-config probes for GLib and Cairo appear to demand
    unnecessarily-high revisions of both packages; the versions in
    Debian's current stable release seem to work fine (the `mapviewer'
    demo app seems to build and work fine on my laptop).
  • The way that the pkg-config probes are combined & labelled makes
    the output from ./configure confusing (as well as the error
    when the list of prerequisites is unsatisfied, which made me go
    `What do you mean it failed when looking for OPENSTREETMAP_GPS_MAP!?
    Isn't that what I'm building? Oh...').
  • `./configure && make install' doesn't work in a dedicated build-tree
    (outside of the source-tree).
  • The using a funky trick with the linker where you `backdoor'
    in past libtool, which I think is unnecessary and may lead
    to problems (or at least confusion) for someone some day.

cap max queued tiles

Yeah, I have had this before, where it goes and calculates a million
tiles to download if you try and cache the whole world at all zoom
levels.

What do you think a sensible sanity check would be?

what about capping the max-zoom-level at a value where the bounding box contains at most
128 tiles in either dimension? Would cap the queue to 16384 for a perfectly square
bounding box (still quite a lot), and it matches the max 7 zoom levels download of
foxtrotgps.

python bindings

I have been trying to build 1.0.1 from src and it builds fine, but I am unable to find the python directory to compile python2 libs. The python libs are written for python2 not python3 correct? I have followed the instructions at http://nzjrs.github.io/osm-gps-map/

Just curious if I am doing something wrong.

How to compile

I cloned the files with:

git clone git://github.com/nzjrs/osm-gps-map

But i'm not sure how to compile.

root@ph0dv://osm-gps-map# ./configure.ac
bash: ./configure.ac: Toegang geweigerd

(Meaning access denied) I'm root?

Any suggestions?

expose auto-zoom deadband

Fair enough. Is the current autocenter mode sane enough for foxtrotgps?

It is exactly the same as the autocenter code in tango/foxtrot, so should give nobody
reason to complain :) It has a hardcoded dead-zone of 25% of the view though, which might
be good to expose as property, so we can set it to 0 to always follow GPS exactly, or to
1.0 to only re-center when GPS goes outside the view.

MapTrack color property sould be RGBA

The color property of MapTrack is currently declared as GDK_TYPE_COLOR but should be GDK_TYPE_RGBA, otherwise it is not possible to correctly access it properly.

diff --git a/src/osm-gps-map-track.c b/src/osm-gps-map-track.c
index c388917..e83079f 100644
--- a/src/osm-gps-map-track.c
+++ b/src/osm-gps-map-track.c
@@ -203,7 +203,7 @@ osm_gps_map_track_class_init (OsmGpsMapTrackClass *klass)
                                      g_param_spec_boxed ("color",
                                                          "color",
                                                          "color of the track",
-                                                         GDK_TYPE_COLOR,
+                                                         GDK_TYPE_RGBA,
                                                          G_PARAM_READABLE | G_PARAM_WRITABLE));

File collisions between 0.7.3 and 1.1.0

Hello,

Unfortunately there are file collisions between the two releases which prevent GTK+2 and GTK+3 versions of osm-gps-map from being installed completely in parallel. Namely:

  • both versions install their documentation to /.../gtk-doc/html/libosmgpsmap . I would suggest changing the directory name used by GTK+3 releases to libosmgpsmap-1.0, same as it was done elsewhere;
  • the GObject introspection files are called OsmGpsMap-1.0.gir and OsmGpsMap-1.0.typelib for both versions. For consistency it should be called just OsmGpsMap.* for GTK+2 releases, however I do not know if it is allowed for those files not to include a version number.

ENHANCEMENT: do not download tiles that are not needed any more

If the zoom level is raised rapidly (mouse scroll) in the app using osm_gps, e.g. from 5 to 9, all the tiles needed tiles for zoom 6, then all those for zoom 7, then those for zoom 8, then those for zoom 9 are downloaded.

The same thing happens when lowering the zoom level, and when moving the map. A big amount of data is downloaded without a real need. This gives a serious "user experience" problem on slow connections.

My proposal is: if the zoom level changes while downloading a set of tiles, cancel the download of the zoom level not needed any more.

More generally: If a tile isn't needed any more, for changing the zoom level or for remaining outside the visible map window, stop downloading it.

Change center map should be the "changed" signal not the on_button_release

The "map centre" is not accurate in the on_button_release event. Drag the map a long bit, then notice that lat/lon is inaccurate, it updates when you click (mousedown,mouseup) the map. So it seems the example should be using the "changed" signal which happens after the change, not button-release which happens before the central coordinate is changed.

I'm referring to the example code, https://github.com/nzjrs/osm-gps-map/blob/master/examples/mapviewer.py

Version 0.7.3 doesn't link against libm

I've just seen the following after changing the default system linker from bfd to gold:

libtool: link: x86_64-pc-linux-gnu-gcc -o /tmp/osm-gps-map-0.7.3/src/tmp-introspecti5Eacz/.libs/OsmGpsMap-1.0 -O2 tmp-introspecti5Eacz/tmp/osm-gps-map-0.7.3/src/tmp-introspecti5Eacz/OsmGpsMap-1.0.o -Wl,--export-dynamic -pthread -Wl,--export-dynamic -Wl,--as-needed -L. ./.libs/libosmgpsmap.so -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoft2-1.0 -lpango-1.0 -lfontconfig -lfreetype -lcairo -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -pthread
./.libs/libosmgpsmap.so: error: undefined reference to 'sin'
./.libs/libosmgpsmap.so: error: undefined reference to 'atanh'
./.libs/libosmgpsmap.so: error: undefined reference to 'exp'
./.libs/libosmgpsmap.so: error: undefined reference to 'tanh'
./.libs/libosmgpsmap.so: error: undefined reference to 'asin'
./.libs/libosmgpsmap.so: error: undefined reference to 'logf'
./.libs/libosmgpsmap.so: error: undefined reference to 'pow'
./.libs/libosmgpsmap.so: error: undefined reference to 'sincos'
./.libs/libosmgpsmap.so: error: undefined reference to 'floorf'
./.libs/libosmgpsmap.so: error: undefined reference to 'cos'
collect2: error: ld returned 1 exit status

From what I can tell this is because gold is more strict than bfd when it comes to implicit linking of libraries and configure does not add -lm to linker options - even though it should because some libm functions are indeed used in the code.

changing map-source does not redraw map

I just hooked up the OsmGpsMap defined maps into foxtrotGPS and I noticed
that setting the
map-source property does not redraw the map. It will use the new source
though when
forcing a redraw by using zoom in or out.

This is a bug.

Multiple tile layer

Is it possible to use multiple tile layers easily with the current implementation?
In my use-case I need to have a base OSM tilemap + openseamap seamark layer; I'm not sure if I need to implement a custom Layer to do that or it's already present a better way.

If not, it could be useful a Layer implementation for tiles

Projection setting for tiles

When I use a Mapbox map (with a free account this is https://api.mapbox.com/v4/mapbox.outdoors/#Z/#Y/#X.jpg90?access_token=...key) https://docs.mapbox.com/help/glossary/raster-tiles-api/
for the tiles in this example, the map shows all broken up, which apparently is due to the mapping projection of Mapbox. https://docs.mapbox.com/help/how-mapbox-works/mapbox-data/
https://stackoverflow.com/questions/34025979/proj4leaflet-not-working-with-various-tile-servers

Is there any option to change the projection of OSMGPSMap library?

Vala binding can't change map source

Hi,

When using Vala bindings, I cannot change the map source. Further investigation shows that the osm_gps_map_set() function is never called (line 1977 of osm-gps-map-widget.c). This is because the old map source is -1 (less than OSM_GPS_MAP_SOURCE_NULL).

Changing lines 1642 and 2837 from -1 to 0 seems to fix the problem. I can't see any real reason why is the map source should be initialised to -1.

Cheers!

Application crashes without error code after repeatedly changing pixbuf of an OsmGpsMapImage

Im sorry if this is not the right place to ask, but i cant figure out what the problem might be, and unsure wether this is an issue with OsmGpsMap or my own code.

Im trying to show an image on the map, but i need to rescale the image every time a zoom event occurs.

Whenever i call the code to rescale the image multiple times, the application runs slower and slower until it crashes with no other message than "killed".

The code for changing existing drawn GdkPixbuf with a new GdkPixbuf with correct scale based on zoom:

GdkPixbuf* heatmapImg;
OsmGpsMapImage* image;

void updateHeatmapImgScale(OsmGpsMap* map, int zoom)
{
    double metersPerPixel = Util::WebMercator::metersPerPixel(model->heatmapCenter.longLat.elements[1], zoom);
    double scaleX = model->metersPerPixel.elements[0] / metersPerPixel;
    double scaleY = model->metersPerPixel.elements[1] / metersPerPixel;

    // Create new scaled heatmap
    GdkPixbuf* heatmapImgScaled = gdk_pixbuf_scale_simple(heatmapImg, model->heatmap.width * scaleX, model->heatmap.height * scaleY, GDK_INTERP_NEAREST);

    // Create image to add pixbuf to if not already exists
    if(!image)
    {
        image = osm_gps_map_image_add(OSM_GPS_MAP(map), model->heatmapCenter.longLat.elements[1], model->heatmapCenter.longLat.elements[0], heatmapImgScaled);
    }
    else // If image exists, update the pixbuf already being shown
    {
        g_object_set(image, "pixbuf", heatmapImgScaled, NULL);
    }

    g_object_unref(heatmapImgScaled);
}

heatmapImg is the unscaled image and is not show on the map.

In the function i first create the newly scaled heatmapImgScaled.
I check to see if the OsmGpsMapImage container exists, if it doesent i create a new OsmGpsMapImage with the scaled heatmap.
If the OsmGpsMapImage container already exists, i simply set the "pixbuf" property to the scaled heatmap.
Lastly, i unreference the scaled heatmap so that the heatmap within OsmGpsMapImage has a reference count of 1, so that the reference count drops to 0 when i set the new heatmap with g_object_set the next time the function is called.

The rest of the code (184 lines) can be found here: https://pastebin.com/8KhnSLgH . Using a non-github link as the repository is private.

I have tried commenting out gtk_main() and only calling updateHeatmapImgScale in a loop 500 times and used Valgrind to check for memory leak. Valgrinds report on memory leakage says 2,856 bytes definitely lost, 15,494 bytes indirectly lost and 5,287 bytes possibly lost. This doesent seem to be mainly a memory leak issue as these statistics dont seems bad enough for the program to crash.

Am i doing something wrong or is this an issue with OsmGpsMap?

Make error

When building from source I am able to get as far as make but then it encounters an error, listed below, that I would appreciate help with. I am running Ubuntu 15.10.

osm-gps-map-track.h:93: Error: OsmGpsMap: identifier not found on the first line:
*
^
osm-gps-map-track.c:231: Warning: OsmGpsMap: incorrect number of parameters in comment block, parameter annotations will be ignored.
osm-gps-map-polygon.h:56: Warning: OsmGpsMap: osm_gps_map_polygon_get_track: return value: Missing (transfer) annotation

Tile use and using this library

I don't know if this has been resolved elsewhere, but where does this library stand as to the tile usage policy on https://operations.osmfoundation.org/policies/tiles/ ?

For example, "Bulk downloading is strongly discouraged. Do not download tiles unnecessarily."
My app, as well as everyone else who has build something off the example, has the cache functionality built in and is an awesome feature of this library. Is there is any required adjustment to the config, or need to register my app in addition to what work Osm GPS library does?

manage tracks across the date change line

a segmente like (lat=0º, lon=-179º) -> (lat=0º, lon=+179º) is currently drawn as a line across almost all the equator, while it should be drawn across the date change line, i.e., on the opposite side.

I think that it would be enough to check if the ðlon is > 180º, and in that case a segment like (lat=0º, lon=-179º) -> (lat=0º, lon=+179º) will become two segments (lat=0º, lon=-179º) -> (lat=0º, lon=-180º) + (lat=0º, lon=+180º) -> (lat=0º, lon=+179º).

I'm thinking in lines 297-298 of osm-gps-map-track.c

Is it possible? i.e., is admitted that a track has two separete segments?

Error building on OpenBSD

0.7.3 fails to link on OpenBSD:

  GISCAN OsmGpsMap-1.0.gir
/tmp/osm-gps-map-0.7.3/src/tmp-introspectzaGGOr/.libs/libglib-2.0.so.2800.0: warning: vsprintf() is often misused, please use vsnprintf()
/tmp/osm-gps-map-0.7.3/src/tmp-introspectzaGGOr/.libs/libosmgpsmap.so.2.1: warning: strcpy() is almost always misused, please use strlcpy()
/tmp/osm-gps-map-0.7.3/src/tmp-introspectzaGGOr/.libs/libgtk-x11-2.0.so.2400.0: warning: sprintf() is often misused, please use snprintf()
/tmp/osm-gps-map-0.7.3/src/tmp-introspectzaGGOr/.libs/libgtk-x11-2.0.so.2400.0: warning: strcat() is almost always misused, please use strlcat()
The GObject name 'OsmGpsMap' isn't compatibile
with the configured identifier prefixes:
  ['OsmGpsMap']
The class would have no name.  Most likely you want to specify a
different --identifier-prefix.
gmake[2]: *** [OsmGpsMap-1.0.gir] Error 1
gmake[2]: Leaving directory `/tmp/osm-gps-map-0.7.3/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/tmp/osm-gps-map-0.7.3'
gmake: *** [all] Error 2

Makefile inconsistency

Hi,

Whilst building this package I noticed it sent osm_gps_mapdocdir documentation to ${prefix}/doc/osm-gps-map

This results in files being place in /usr/doc/ or /usr/local/doc/ depending on your prefix - I believe it should be ${prefix}/share/doc/osm-gps-map instead, in order to retain consistency with other packages.

Just a quick edit to line 11 of Makefile.am I believe.

Regards

Kyle

stop emission of clicks if on osd layers

There are two approaches here. If you want to manage clicks totally
yourself then just use the normal gtk+ click event API.

Yes that works. However I still receive button_press and button_release events when I
click on OSD elements (and thus always get the fine popup window all the time ;-).

Hmm, I will have a think about whether osm-gps-map should stop the
emission of these signals if the osd element registers a click.

tiles-queued signal not always triggered

Some things I noticed :

It seems the tiles-queued signal is only triggered when downloading tiles 'on-demand',
i.e. when dragging the map around. There are no events triggered when doing an explicit
map download.

OK, this sounds like a bug.

Re-license to allow inclusion with BeeWare?

BeeWare is a project that tries to make Python programming be available for all modern platforms and devices. (This is achieved in various way, for Android e.g. by cross-compiling Python bytecode to Java bytecode.)

I'd like to add a maps widget to their set of widgets, but I've been told this project's GPL license doesn't allow inclusion into their library. See beeware/toga#727.

Is there any way to solve this problem? If everything else fails, would it be possible to re-license the project with LGPL? (I'm not a big fan of weakening the GPL, but it would be sad to not have a maps widget available on GNU/Linux.)

OsmGpsMap - Glade-previewer does not want to load it.

Hi!
I've tried to use OsmGpsMap in glade 3.28.1, but glade-previewer complains with following error:

Couldn't load builder definition: ../../OpenTacho.glade:122:1 Invalid object type 'OsmGpsMap'

When I remove it from glade UI, it loads fine. Widget is added in extra templates menu:
image

Any idea how I can resolve this problem?

Add CloudMade support

CloudMade is an OpenStreetMap-based map service that allows creation of customized map tiles (including selecting colors and what details to include on what zoom level).

It would be great if osm-gps-map could support loading map tiles from CloudMade in addition to regular OSM tile providers, as then app developers could style the maps to fit the visual style of their application.

http://cloudmade.com/

get_scale doesnt take into account latitude

The current implementation osm_gps_map_get_scale takes the scale at
the center. Do you want me to expose
osm_gps_map_get_scale_at_point (which is currently private)?

No, the center is fine, but if that take_scale function is working correctly, then it's
probably another bug. My observation is that the OSD scale indicator doesn't get updated
when staying in the same zoom level but dragging the map to another latitude.

Resizing problem with gtk3.

With the python example (examples/mapviewer.py) if you resize the main window the crosshair doesn't show the same position.
The symtoms are different if you resize by width or height.
it works correctly with gtk2

zoom changed notify prop

  • I would like to have a zoom-changed signal, so I can update the zoom slider when zooming
    in and out with the keybindings or mouse-scrollwheel.

You should be able to connect to "changed" which is called anytime the
bounding box is changed, i.e. zoom or scroll. I should probably also
emit notify::zoom signal here (i.e. patch welcome)

Failure when using using osm_gps_map_track_insert_point in python

Hi,
I tried to use osm_gps_map_track_insert_point while writing tests in python. The function itself works, but than python exits unexpected.

Here is a small example:

#!/usr/bin/python3
from gi.repository import OsmGpsMap
track = OsmGpsMap.MapTrack()
point = OsmGpsMap.MapPoint.new_degrees(50, 10)
track.insert_point(point, 0)

Result (full backtrace):

*** Error in `/usr/bin/python3': double free or corruption (fasttop): 0x0000000000cf91c0 ***

Is this not intended way to call this function?

use `G_ADD_PRIVATE` instead of `g_type_class_add_private`

g_type_class_add_private and G_TYPE_INSTANCE_GET_PRIVATE are deprecated in favour of G_ADD_PRIVATE() and the generated your_type_get_instance_private() stuff.

Currently compiling produces following notices:

osm-gps-map-osd.c: In function ‘osm_gps_map_osd_class_init’:
osm-gps-map-osd.c:325:2: warning: ‘g_type_class_add_private’ is deprecated [-Wdeprecated-declarations]
  325 |  g_type_class_add_private (klass, sizeof (OsmGpsMapOsdPrivate));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:24,
                 from /usr/include/glib-2.0/gobject/gbinding.h:29,
                 from /usr/include/glib-2.0/glib-object.h:22,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /usr/include/gtk-3.0/gdk/gdk.h:32,
                 from osd-utils.h:28,
                 from osm-gps-map-osd.c:22:
/usr/include/glib-2.0/gobject/gtype.h:1304:10: note: declared here
 1304 | void     g_type_class_add_private       (gpointer                    g_class,
osm-gps-map-track.c: In function ‘osm_gps_map_track_init’:
osm-gps-map-track.c:285:13: warning: Deprecated pre-processor symbol, replace with 
  285 |     self->priv = G_TYPE_INSTANCE_GET_PRIVATE((self), OSM_TYPE_GPS_MAP_TRACK, OsmGpsMapTrackPrivate);

It would be good to modernize it :)

New release

It may be the time for a new release. 1.0.3? 1.1?

drawable area cairo

Hi,
I'm working on a project based on your library and example mapviewer.py.
I would like to add several layers (real-time localisation of a robot, waypoints and paths the robot can take) and I try to create a cairo drawable area that matches with the map displayed on Gtk window.
I don't know how to proceed, i see on cairo website some examples like this but how to define the surface that will be used to draw compared with map displayed ???
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, WIDTH, HEIGHT)
ctx = cairo.Context(surface)
Thanks a lot in advance for your help (if you can tell me lines to add to mapviewer.py)
David

move overlays when dragging

context from email:

Yeah, this is due to a bug in osm-gps-map which I reported a while
back. It happens because osm-gps-map doesn't update map-x and map-y
properties while scrolling, so the layers don't know it is being
moved. Once the bug is fixed, fixed-position objects in layers should
pan with the map.

Did I ever fix this? I don't recall. I would appreciate it if you
could come up with a patch here, or point me at our previous
conclusions / file this as a bug so it is not lost again!

I'm not sure what the right solution is. Here's the context from our
previous discussion. It sounds like it's harder than just updating
map-x and map-y. It sounds like this would probably create quite a
bit of flickering and such at the least. For layers that are
geographically fixed we'd want to blit them with the base map, but
other layers like the OSD they are fixed on the display, not on the
map, and should stay in place. Maybe we need to think more about how
to solve this. Let me know if you have any other ideas.

On Wed, May 26, 2010 at 12:09 PM, wrote:

I think the map_x and map_y not getting updated while scrolling is one of
the most irritating bugs in the list below. When I drag the map, it
literally keeps all my overlay components in the same place while the map
moves under it, then they snap into the right place when you release the
mouse button. This is only an issue for objects with a fixed geographic
location like I'm dealing with, and not for fixed screen position objects
like the default OSD uses.

I think this might actually require a bit of work. When dragging we
just blit the previously rendered content at the new offset (to
improve performance). Because you do the overlays yourself then this
becomes tricky.

I wonder if the simple solution of just updating map_x and map_y while
dragging will be sufficient while not breaking things like the
drag-threshold.

John

map scale at location

  • map scale indicator is incorrect. It is location/center-map specific and changes with
    the latitude.

The current implementation osm_gps_map_get_scale takes the scale at
the center. Do you want me to expose
osm_gps_map_get_scale_at_point (which is currently private)?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.