Skip to content

Commit 711128d

Browse files
committed
WIP: Update dependencies and functionality
- Update dependencies (Flask, mypy, python >3.8) - Load javascript in an async manner - Replace obsolete `Marker` with `AdvancedMarkerElement`
1 parent 6d89169 commit 711128d

File tree

5 files changed

+1342
-1252
lines changed

5 files changed

+1342
-1252
lines changed

examples/templates/example.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,8 @@ <h2>You can move markers dynamically and add new markers, refresh its position e
151151
<br />
152152
<button onclick='movingmap_markers.map(function(mk){mk.setMap(null)})'>Remove marker</button>
153153
<button onclick='movingmap_markers.map(function(mk){mk.setMap(movingmap)})'>Restore marker</button>
154-
<button onclick='new google.maps.Marker({title: "New Marker", position: {lat: 37.4640, lng: -122.1350}}).setMap(movingmap)'>Add New Marker Above</button>
154+
const { AdvancedMarkerElement } = await google.maps.importLibrary("marker");
155+
<button onclick='new AdvancedMarkerElement({title: "New Marker", position: {lat: 37.4640, lng: -122.1350}}).setMap(movingmap)'>Add New Marker Above</button>
155156

156157

157158
<pre>
@@ -161,7 +162,7 @@ <h2>You can move markers dynamically and add new markers, refresh its position e
161162
&lt;button onclick='movingmap_markers.map(function(mk){mk.setPosition({lat: 37.449, lng:-122.135})})'&gt;Go to position 4 &lt;/button&gt;
162163
&lt;button onclick='movingmap_markers.map(function(mk){mk.setMap(null)})'&gt;Remove marker&lt;/button&gt;
163164
&lt;button onclick='movingmap_markers.map(function(mk){mk.setMap(movingmap)})'&gt;Restore marker&lt;/button&gt;
164-
&lt;button onclick='onclick='new google.maps.Marker({title: "New Marker", position: {lat: 37.4640, lng: -122.1350}}).setMap(movingmap)''&gt;Add new marker above&lt;/button&gt;
165+
&lt;button onclick='onclick='AdvancedMarkerElement({title: "New Marker", position: {lat: 37.4640, lng: -122.1350}}).setMap(movingmap)''&gt;Add new marker above&lt;/button&gt;
165166
</pre>
166167

167168

flask_googlemaps/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
"""FlaskGoogleMaps - Google Maps Extension for Flask"""
22

3-
__version__ = "0.4.0"
3+
__version__ = "0.4.2"
44

55
from json import dumps
66
from typing import Optional, Dict, Any, List, Union, Tuple, Text
77
import requests
8-
from flask import Blueprint, Markup, g, render_template
8+
from flask import Blueprint, g, render_template
9+
from markupsafe import Markup
910

1011
from flask_googlemaps.icons import dots, Icon
1112

flask_googlemaps/templates/googlemaps/gmapjs.html

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{% if not is_googlemaps_loaded() and not gmap.heatmap_layer %} {% if GOOGLEMAPS_KEY %}
2-
<script src="//maps.googleapis.com/maps/api/js?key={{GOOGLEMAPS_KEY}}&map_ids={{gmap.map_ids}}&language={{gmap.language}}&region={{gmap.region}}" type="text/javascript"></script>
2+
<script async src="//maps.googleapis.com/maps/api/js?key={{GOOGLEMAPS_KEY}}&map_ids={{gmap.map_ids}}&language={{gmap.language}}&region={{gmap.region}}" type="text/javascript"></script>
33
{% else %}
4-
<script src="//maps.googleapis.com/maps/api/js?language={{gmap.language}}&region={{gmap.region}}" type="text/javascript"></script>
4+
<script async src="//maps.googleapis.com/maps/api/js?language={{gmap.language}}&region={{gmap.region}}" type="text/javascript"></script>
55
{% endif %} {{ set_googlemaps_loaded() }} {% endif %}{% if gmap.cluster %}
66
<script src="//cdnjs.cloudflare.com/ajax/libs/js-marker-clusterer/1.0.0/markerclusterer_compiled.js" type="text/javascript"></script>
77
{% endif %}{% if gmap.heatmap_layer %}{% if GOOGLEMAPS_KEY %}
8-
<script src="//maps.googleapis.com/maps/api/js?key={{GOOGLEMAPS_KEY}}&map_ids={{gmap.map_ids}}&language={{gmap.language}}&region={{gmap.region}}&libraries=visualization" type="text/javascript"></script>
8+
<script async src="//maps.googleapis.com/maps/api/js?key={{GOOGLEMAPS_KEY}}&map_ids={{gmap.map_ids}}&language={{gmap.language}}&region={{gmap.region}}&libraries=visualization" type="text/javascript"></script>
99
{% endif %}{% endif%}
1010

1111

@@ -23,7 +23,7 @@
2323
var {{gmap.varname}}_polylines = [];
2424
var prev_infowindow_{{gmap.varname}} = null;
2525

26-
function initialize_{{gmap.varname}}() {
26+
async function initialize_{{gmap.varname}}() {
2727
document.getElementById('{{gmap.identifier}}').style.display = 'block';
2828
{{gmap.varname}} = new google.maps.Map(
2929
document.getElementById('{{gmap.identifier}}'), {
@@ -37,7 +37,8 @@
3737
rotateControl: {% if gmap.rotate_control %}true{% else %}false{% endif %},
3838
scrollwheel: {% if gmap.scroll_wheel %}true{% else %}false{% endif %},
3939
fullscreenControl: {% if gmap.fullscreen_control %}true{% else %}false{% endif %},
40-
styles: {{ gmap.styles | tojson }}
40+
styles: {{ gmap.styles | tojson }},
41+
mapId: "{{ gmap.mapId if gmap.mapId is defined else 'DEMO_MAP_ID' }}"
4142
});
4243

4344
//center map location on user location
@@ -82,13 +83,12 @@
8283

8384
// add gmap markers
8485
var raw_markers = {{gmap.markers|tojson|safe}};
86+
const { AdvancedMarkerElement } = await google.maps.importLibrary("marker");
8587
for(i=0; i<{{gmap.markers|length}};i++) {
86-
tempMarker = new google.maps.Marker({
88+
tempMarker = new AdvancedMarkerElement({
8789
position: new google.maps.LatLng(raw_markers[i].lat, raw_markers[i].lng),
8890
map: {{gmap.varname}},
89-
icon: raw_markers[i].icon,
9091
title: raw_markers[i].title ? raw_markers[i].title : null,
91-
label: raw_markers[i].label ? raw_markers[i].label : null
9292
});
9393

9494

@@ -298,6 +298,6 @@
298298
window.onload = init_{{gmap.identifier}}_button;
299299
}
300300
{% else %}
301-
google.maps.event.addDomListener(window, 'load', initialize_{{gmap.varname}});
301+
window.addEventListener('load', initialize_{{gmap.varname}});
302302
{% endif %}
303303
</script>

0 commit comments

Comments
 (0)