Comments (12)
@pmatlak1 spróbowałem dokładnie tak jak napisałeś i wygląda u mnie bardzo obiecująco.
from btsearch.
A może openstreetmap.org zamiast google?
from btsearch.
Ping, coś się w tym temacie dzieje?
I tak i nie.
Nie, bo ten projekt efektywnie jest martwy i takim pozostanie, z uwagi na przestarzałe i nie wspierane zależności (stare wersje Django, Python itp.). Generalnie nie ma sensu pudrować trupa, tylko trzeba to napisać od nowa. Nawet jak niedawno wprowadzałem do mapki filtr nowego pasma 5G3500, to robiłem live hack bezpośrednio na serwerze produkcyjnym, bo bałem się robić deploy z gita. :)
Tak, bowiem niedawno zacząłem stopniową eksplorację Dockera (tak, wiem, brzmi "wtf?!", ale jestem boomerem - dosłownie - i nie znałem go wcześniej) oraz koncepcji napisania oraz zdockeryzowania prostej aplikacji btsearch-core
, która w założeniu ma odpowiadać wyłącznie za zarządzanie danymi i eksponowanie ich przez API, co w kolejnym założeniu ma otworzyć drogę do pisania 3rd party aplikacji, które te dane by renderowały w dowolny sposób, np. na mapie OSM.
Jak będę miał cokolwiek, co będzie warte pokazania i puszczenia w świat - na pewno tutaj o tym napiszę.
from btsearch.
Niezupełnie, myślę że wcale nie trzeba zmieniać programu i może wystarczyć sama zmiana dostawcy mapy. Zrobiłem szybkie próbi z open street maps (darmowe) i całkiem dobrze wyszło. Nie będę commitował bo nie mam danych testowych i moja apka nie jest w pełni funkcjonalna przez co nie mogę tego kodu dobrze przetestować, ale podążając za tą instrukcją https://wiki.openstreetmap.org/wiki/Google_Maps_Example
można wykonać następujące kroki w pliku btsearch.map.js
- Zmienić mapTypeId na "OSM" - mapTypeId: "OSM",
- Pod linią 40 dodać coś takiego
this.map.mapTypes.set("OSM", new google.maps.ImageMapType({ getTileUrl: function(coord, zoom) { var tilesPerGlobe = 1 << zoom; var x = coord.x % tilesPerGlobe; if (x < 0) { x = tilesPerGlobe+x; } return "https://tile.openstreetmap.org/" + zoom + "/" + x + "/" + coord.y + ".png"; }, tileSize: new google.maps.Size(256, 256), name: "OpenStreetMap", maxZoom: 18 }));
I dostaniemy apkę z mapą zaciąganą z OSM. Czy ktoś kto ma działającą wersję APKI mógłby to lepiej przetestować? @adlorenz
from btsearch.
Komunikat
W serwisie beta.btsearch.pl nieregularnie wyświetla się komunikat o błędzie, a mapa jest zaciemniona z informacją "For development purposes only". Dlaczego?Sytuacja wynika z wprowadzenia przez Google nowego, znacznie niższego niż dotychczas bezpłatnego limitu wykorzystania usługi Google Maps JavaScript API, z której mapa korzysta do wyświetlania danych o lokalizacjach stacji bazowych oraz pozwoleń UKE. Pomimo komunikatu o błędzie oraz zaciemnienia mapy, jej funkcjonalność pozostaje bez zmian.
Biorąc pod uwagę aktualną popularność serwisu, zapewnienie ciągłości funkcjonowania mapy bez zmiany jej providera wymaga poniesienia regularnego kosztu rzędu kilkuset złotych miesięcznie na rzecz Google. Zważywszy, że serwis BTSearch jest projektem typu non-profit, tworzonym w prywatnym czasie przez entuzjastów telekomunikacji i telefonii komórkowej, jest to kwota, której nie jesteśmy w stanie pokryć.
Co dalej?
W związku ze wspomnianym wyżej kontekstem "tworzenia BTSearch w prywatnym czasie", wdrożenie rozwiązania dla zaistniałej sytuacji niestety nie będzie szybkim procesem. :( Zastosowanie alternatywnego providera mapy wymaga relatywnie poważnych zmian w kodzie źródłowym serwisu. Ponadto, ze wstępnego researchu wynika, że większość sensownych providerów jest płatnych, więc prawdopodobnie niezbędne będzie dodatkowe finansowanie serwisu (reklamy na mapie, sponsoring itp.). W każdym razie aktualnie rozważamy kilka ścieżek prowadzących do przywrócenia poprawnego funkcjonowania mapy BTSearch.UWAGA! Zapraszamy do współpracy chętnych web-developerów open-source. Kod źródłowy BTSearch jest dostępny w otwartym repozytorium na GitHub'ie. Więcej szczegółów w README: https://github.com/adlorenz/btsearch
Dawid Lorenz & Krzysztof Niemczyk
http://beta.btsearch.pl/komunikat/
from btsearch.
A może openstreetmap.org zamiast google?
Zapewne jest to rozwiązanie, ale największym problemem zakładam że jest:
Zastosowanie alternatywnego providera mapy wymaga relatywnie poważnych zmian w kodzie źródłowym serwisu.
jak w komunikacie który załączyłem.
Powiązane: #1
from btsearch.
Wiadomo, że zmiana providera (mapy) będzie się wiązała z większym refaktorem...
from btsearch.
@pmatlak1 spróbowałem dokładnie tak jak napisałeś i wygląda u mnie bardzo obiecująco.
Wygląda pięknie, tylko jeszcze trzeba zamienić napis "Google" na atrybucję OpenStreetMap :)
from btsearch.
Ping, coś się w tym temacie dzieje?
from btsearch.
Tak jak pisałem też w #11 to ja chętnie pomogę jakoś, i w zarysie myślę, że rewrite jest dobrym kierunkiem.
Może jednak jako "hotfix" możemy spróbować z tym jednym commitem żeby dać mapkę OSM @adlorenz?
Mi to dobrze działało jak się w końcu udało wszystko odpalić na dockerze na chwilę ten jeden raz 2 lata temu :)
diff --git a/src/static/js/btsearch.map.js b/src/static/js/btsearch.map.js
index 61e5fe8..dad60be 100644
--- a/src/static/js/btsearch.map.js
+++ b/src/static/js/btsearch.map.js
@@ -15,7 +15,7 @@ var core = {
center: new google.maps.LatLng(52.069245, 19.480193),
streetViewControl: false,
scaleControl: true,
- mapTypeId: google.maps.MapTypeId.ROADMAP,
+ mapTypeId: 'OSM',
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
position: google.maps.ControlPosition.TOP_RIGHT
@@ -38,6 +38,7 @@ var core = {
init: function(mapCanvas, initParams) {
this.map = new google.maps.Map(mapCanvas, this.mapParams);
+ this.map.mapTypes.set("OSM", new google.maps.ImageMapType({ getTileUrl: function(coord, zoom) { var tilesPerGlobe = 1 << zoom; var x = coord.x % tilesPerGlobe; if (x < 0) { x = tilesPerGlobe+x; } return "https://tile.openstreetmap.org/" + zoom + "/" + x + "/" + coord.y + ".png"; }, tileSize: new google.maps.Size(256, 256), name: "OpenStreetMap", maxZoom: 18 }))
this.geocoder = new google.maps.Geocoder();
this.markers = [];
this.initParams = initParams;
diff --git a/src/templates/site/layout.html b/src/templates/site/layout.html
index 590b9bc..90d8b26 100644
--- a/src/templates/site/layout.html
+++ b/src/templates/site/layout.html
@@ -37,7 +37,6 @@
<ul class="nav navbar-nav">
<li><a href="{% url 'home' %}">Mapa</a></li>
<li><a href="{% url 'bts:listing' %}">Baza danych</a></li>
- <li><a href="/komunikat/" id="news-ticker-trigger"><span class="text-danger">Dlaczego mapa nie wyświetla się poprawnie?</span></a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
from btsearch.
Też się chętnie dołożę do projektu ale najwcześniej czas będę miał gdzieś w Q3. Może warto postawić po prostu drugą instancje obok, przenieść dane i jak się uda potwierdzić że działa z osm to przepiąć dnsy.
Przy okazja ssl by się przydał, można to ograć cloudflare, wtedy ruch od przeglądarki do nich leci po ssl, od nich do serwisu może lecieć bez i nic od strony serwera nie trzeba robić, a google i przeglądarki przychylniejszym okiem patrzą na strony z ssl ;)
from btsearch.
Ok to ja zmieniłem mój istniejący pr #12 tak żeby dodawał tylko tę zmianę która zasugerował @pmatlak1.
"U mnie działa" a przynajmniej działało, 2 lata temu jak to zrobiłem kiedy wreszcie udało mi się odpalić lokalnie projekt na krótką chwilę, potem znowu mi wyciągneli zależności spod nóg i już jest trudno odpalić to z Pythonem 2 i na ARM (Apple Silicon) :/
from btsearch.
Related Issues (9)
- Mapka HOT 3
- API dla organizacji HOT 2
- Eksport danych
- Wyszukiwanie po Cell ID na mapie - REQUEST_DENIED
- Cykliczne zapisywanie danych z UKE/otwarte dane
- Brak nadajników na mapie - failed to load resource: the server responded with a status of 400 (Bad Request) Request Header Or Cookie Too Large HOT 2
- Feature - dodanie opcji podejrzenia radiolinii do nadajników
- Dodanie licencji
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from btsearch.