forked from cemaden-educacao/WPD-MobileApp
Browse Source
Switching from context API to custom hook useLocation. Almost fixed bug in map focus.
master
Switching from context API to custom hook useLocation. Almost fixed bug in map focus.
master
GabrielTrettel
3 years ago
5 changed files with 131 additions and 143 deletions
-
5src/app/components/map/LeafLetMap.js
-
185src/app/components/map/Map.html
-
23src/app/components/map/OpenStreetMap.js
-
4src/app/hooks/useLocation.js
-
51src/app/screens/MapFormScreen.js
@ -1,105 +1,112 @@ |
|||||
<!DOCTYPE html> |
<!DOCTYPE html> |
||||
<html> |
<html> |
||||
|
<head> |
||||
|
<title>Mobile tutorial - Leaflet</title> |
||||
|
<meta charset="utf-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
|
||||
<head> |
|
||||
<title>Mobile tutorial - Leaflet</title> |
|
||||
<meta charset="utf-8" /> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
|
||||
|
|
||||
<!-- <link --> |
|
||||
<!-- rel="shortcut icon" --> |
|
||||
<!-- type="image/x-icon" --> |
|
||||
<!-- href="docs/images/favicon.ico" --> |
|
||||
<!-- /> --> |
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" |
|
||||
integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" |
|
||||
crossorigin="" /> |
|
||||
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" |
|
||||
integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" |
|
||||
crossorigin=""></script> |
|
||||
<style> |
|
||||
html, |
|
||||
body { |
|
||||
height: 100%; |
|
||||
margin: 0; |
|
||||
} |
|
||||
|
<!-- <link --> |
||||
|
<!-- rel="shortcut icon" --> |
||||
|
<!-- type="image/x-icon" --> |
||||
|
<!-- href="docs/images/favicon.ico" --> |
||||
|
<!-- /> --> |
||||
|
<link |
||||
|
rel="stylesheet" |
||||
|
href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" |
||||
|
integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" |
||||
|
crossorigin="" |
||||
|
/> |
||||
|
<script |
||||
|
src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" |
||||
|
integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" |
||||
|
crossorigin="" |
||||
|
></script> |
||||
|
<style> |
||||
|
html, |
||||
|
body { |
||||
|
height: 100%; |
||||
|
margin: 0; |
||||
|
} |
||||
|
|
||||
#map { |
|
||||
width: 600px; |
|
||||
height: 400px; |
|
||||
} |
|
||||
</style> |
|
||||
<style> |
|
||||
body { |
|
||||
padding: 0; |
|
||||
margin: 0; |
|
||||
} |
|
||||
|
#map { |
||||
|
width: 600px; |
||||
|
height: 400px; |
||||
|
} |
||||
|
</style> |
||||
|
<style> |
||||
|
body { |
||||
|
padding: 0; |
||||
|
margin: 0; |
||||
|
} |
||||
|
|
||||
#map { |
|
||||
height: 100%; |
|
||||
width: 100vw; |
|
||||
} |
|
||||
</style> |
|
||||
</head> |
|
||||
|
#map { |
||||
|
height: 100%; |
||||
|
width: 100vw; |
||||
|
} |
||||
|
</style> |
||||
|
</head> |
||||
|
|
||||
<body> |
|
||||
<div id="map"></div> |
|
||||
<script> |
|
||||
var map = L.map("map").setView([-23.533773, -46.625290], 5); |
|
||||
var markers = {}; |
|
||||
|
<body> |
||||
|
<div id="map"></div> |
||||
|
<script> |
||||
|
var map = L.map("map").setView([-23.533773, -46.62529], 5); |
||||
|
var markers = {}; |
||||
|
|
||||
L.tileLayer( |
|
||||
"https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiZ2FicmllbC10cmV0dGVsIiwiYSI6ImNrb2RjNWIzYjAwczIyd25yNnUweDNveTkifQ.xRASmGTYm0ieS-FjVrXSjA", |
|
||||
{ |
|
||||
maxZoom: 18, |
|
||||
attribution: |
|
||||
'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, ' + |
|
||||
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>', |
|
||||
id: "mapbox/streets-v11", |
|
||||
tileSize: 512, |
|
||||
zoomOffset: -1, |
|
||||
|
function setCustomView(lat, long, zoom) { |
||||
|
map.setView([lat, long], zoom); |
||||
} |
} |
||||
).addTo(map); |
|
||||
|
|
||||
var moveend = true; |
|
||||
|
L.tileLayer( |
||||
|
"https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiZ2FicmllbC10cmV0dGVsIiwiYSI6ImNrb2RjNWIzYjAwczIyd25yNnUweDNveTkifQ.xRASmGTYm0ieS-FjVrXSjA", |
||||
|
{ |
||||
|
maxZoom: 18, |
||||
|
attribution: |
||||
|
'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, ' + |
||||
|
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>', |
||||
|
id: "mapbox/streets-v11", |
||||
|
tileSize: 512, |
||||
|
zoomOffset: -1, |
||||
|
} |
||||
|
).addTo(map); |
||||
|
|
||||
function onMapClick(e) { |
|
||||
var payload = { |
|
||||
code: 1, |
|
||||
content: { |
|
||||
latitude: e.latlng.lat.toString().slice(0, 8), |
|
||||
longitude: e.latlng.lng.toString().slice(0, 8), |
|
||||
}, |
|
||||
}; |
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify(payload)); |
|
||||
} |
|
||||
|
var moveend = true; |
||||
|
|
||||
function onPopupClick(e) { |
|
||||
var payload = { |
|
||||
code: 2, |
|
||||
content: this.options.ID, |
|
||||
}; |
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify(payload)); |
|
||||
} |
|
||||
|
function onMapClick(e) { |
||||
|
var payload = { |
||||
|
code: 1, |
||||
|
content: { |
||||
|
latitude: e.latlng.lat.toString().slice(0, 8), |
||||
|
longitude: e.latlng.lng.toString().slice(0, 8), |
||||
|
}, |
||||
|
}; |
||||
|
window.ReactNativeWebView.postMessage(JSON.stringify(payload)); |
||||
|
} |
||||
|
|
||||
//var marker = L.marker([0, 0]).bindPopup("Your pickup spot is in this area").addTo(map); |
|
||||
function onMoveEnd(e) { |
|
||||
//marker.setLatLng(map.getCenter()); |
|
||||
|
function onPopupClick(e) { |
||||
|
var payload = { |
||||
|
code: 2, |
||||
|
content: this.options.ID, |
||||
|
}; |
||||
|
window.ReactNativeWebView.postMessage(JSON.stringify(payload)); |
||||
|
} |
||||
|
|
||||
var payload = { |
|
||||
code: 3, |
|
||||
content: { |
|
||||
latitude: map.getCenter().lat, |
|
||||
longitude: map.getCenter().lng, |
|
||||
}, |
|
||||
}; |
|
||||
// map.setView([e.latlng.lat, e.latlng.lng]); |
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify(payload)); |
|
||||
} |
|
||||
|
//var marker = L.marker([0, 0]).bindPopup("Your pickup spot is in this area").addTo(map); |
||||
|
function onMoveEnd(e) { |
||||
|
//marker.setLatLng(map.getCenter()); |
||||
|
|
||||
map.on("moveend", onMoveEnd); |
|
||||
map.on("click", onMapClick); |
|
||||
</script> |
|
||||
</body> |
|
||||
|
var payload = { |
||||
|
code: 3, |
||||
|
content: { |
||||
|
latitude: map.getCenter().lat, |
||||
|
longitude: map.getCenter().lng, |
||||
|
}, |
||||
|
}; |
||||
|
// map.setView([e.latlng.lat, e.latlng.lng]); |
||||
|
window.ReactNativeWebView.postMessage(JSON.stringify(payload)); |
||||
|
} |
||||
|
|
||||
|
map.on("moveend", onMoveEnd); |
||||
|
map.on("click", onMapClick); |
||||
|
</script> |
||||
|
</body> |
||||
</html> |
</html> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue