Aplikacja do czytania punktów na mapie

Aplikacja do czytania punktów na mapie
BL
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:95
0

Cześć.

Chciałbym napisać apkę. Apka ma polegać na tym że mam bazę danych z punktami (miastami,kodami kreskowymi - to jeszcze nie jest jeszcze sprecyzowane na pewno nie będą to super idealne adresy ) i chciałbym je nakładać wszystkie jednocześnie na mapę PL. To są różne typy danych uznajmy że klientów więc tych klientów chciałbym móc w każdym momencie wyfiltrować po np województwach,segmetach (taka kolumna w bazie będzie) lub innych przykładowych typach danych.

Chciałbym zapytać w jaki sposób odczytać wszystkich klientów na raz czyli nałożyć ich jednocześnie. Czy istnieje możliwość zmiany pinezki dla pewnego typu klientów. Np mam klienta z segmentu A i on ma być na zielono a klient z segmentu B ma być na niebiesko.

Jeżeli idę w dobrym kierunku proszę o potwierdzenie i ewentualnie proszę o dokładniejsze wytłumaczenie jak zacząć budowanie takiej apki, reszta sama pójdzie bo znajdę w google.

Myślałem o WPF lub react jako front i c# na backend.

edytowany 1x, ostatnio: BLAZO
UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Postów:2206
0

Rozumiem ze dane masz w bazie i chcesz je umieszczać na mapie? W takim wypadku najlepiej użyć jakiejś mapy typu google maps abo https://www.openstreetmap.org/ i tam masz api do wrzucania POI na mapę, a mapa resztę załatwi.

JP
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:1065
0

Niedawno robiłem mały test ale na komponentami z devexpress na winforms, mapy z MS + api z MS do wyszukiwania lokalizacji po adresach. Nawet trafia z wyszukiwaniem po adresie, kod pocztowy + ulica i numer. TrEba wymuszać wyszukiwania jednego rekordu dla adresu bo czasami znajduje więcej. Pinezki definiukesz jaki chcesz ale to już specyfika komponentów devexpress.

Grzegorz Świdwa
Grzegorz Świdwa
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:385
0

W WPF Microsoft udostępnił kontrolkę mapy. Można do niej bindować dane i przedstawiać je jako np. pinezki. Poszukaj w nuget MapControl

edytowany 1x, ostatnio: Grzegorz Świdwa
BL
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:95
0

Zaciekawia mnie jeszcze płatność za używanie google maps. Powiedzmy mam w bazie 20 tyś klientów i chciałbym ich jednocześnie nałożyć na mapę. Czy to jest 20 tyś wysz Jak jest z kosztami za używanie takiej aplikacji gdybym np chciał użyć tej aplikacji np 5 razy w ciągu dnia albo nałożyć na początku wszystkich klientów a później posprawdzać sobie filtrując sobie tylko wybrane obszary.
Dostaje te 200$ miesięcznie ale nie do końca zdaję sobię sprawę jak to jest jeżeli chodzi o wykorzystanie tego budżetowo w realu. Może ktoś z was ma takie doświadczenia.

Grzegorz Świdwa
Grzegorz Świdwa
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:385
0

Skoro masz klientów w bazie to na mapie jedynie ich wyświetlasz jako "widok". Do wyszukwiania ich nie lepiej zrobić własnego algorytmu selekcjonowania z bazy danych? Masz tam przecież długość i szerokość geograficzną pinezki

BL
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:95
0

No właśnie nie mam długości i szerokości oraz na przyszłość też ich nie będzie. Trzeba byłoby pisać oddzielny automat który ściąga współrzędne. Mam adres miasto i kod pocztowy.

Grzegorz Świdwa
Grzegorz Świdwa
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:385
0

No więc bez kosztów się nie obejdzie powiem wprost. Skoro jeszcze nie napisałeś tej apki polecałbym dołożyć do bazy danych lokalizację po współrzędnych, ponieważ nakładanie pinezek na mapie jest bezpłatne w przeciwieństwie do pobierania danych o miejscu. Po prostu jeżeli lokalizacji nie ma na mapie wczytujesz ją jednym żądaniem, zapisujesz i przy kolejnym uruchomieniu nie musisz tego robić ponownie. Chyba że jesteś kasiasty. Co do nakładania pinezek polecam wpf map control

JP
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:1065
0

W MS Maps API są darmowe pakiety miesięczne. Do z małego systemy chyba wystarczy. W Azure Maps też coś jest za darmo.

edytowany 1x, ostatnio: jacek.placek
Zobacz pozostałe 5 komentarzy
Grzegorz Świdwa
Grzegorz Świdwa
Wyraź się jaśniej
JP
Odpowiadasz na swoje własne komentarze?
Grzegorz Świdwa
Grzegorz Świdwa
Dopełniam myśl napinaczu internetowy
JP
Napinaczu? Nie dość, że dwubiegunówka to jeszcze przewrażliwienie? :)
Grzegorz Świdwa
Grzegorz Świdwa
Grrrrrrr...
JP
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:1065
0

Raczej tak. Każde zapytanie o lokalizację to jedna transakcja.
Jak @Grzegorz Świdwa napisał. Po zapytaniu zapamiętuje. Firmy raczej nie zmieniają adresów zbyt często. Wtedy 250 000 Free na msc może Ci wystarczyć.
Poza tym po jakiego ... chcesz wyświetlać 20 000 punktów na mapie? Co Ci pokaże taka gęstwina?

BL
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:95
0

Co do gęstwiny. 20 k puntów na Całej PL nie jest wcale taką wcale gęstwiną jeżeli określasz np białe plamy miejsc. I do takiego czegoś staram się przygotować.

Dobra to odracając sytuację, czy istnieje możliwość pobrania na podstawie adresu kodu pocztowego i miejscowości współrzędnych tego miejsca ? Chodzi mi Bardziej o narzędzie gdzie będę mógł wrzucić tych 20k klientów i co kwartał wrzucić nowych klientów bez współrzędnych i sobie ich pobrać ?

Grzegorz Świdwa
Grzegorz Świdwa
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:385
0

Tak, przy wykonywaniu żądania do API wybierasz jakie informacje mają być zwrócone :)

JP
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:1065
2

@BLAZO: A ok. Tak to ma sens z tymi plamami.
Zobacz sobie Bing Map API, Azure Maps API.
Bing ma chyba 50 000 free dzienie dla aplikacjo Windows. W azure 10000 płatnych zapytań kosztuje 0,5 usd w S0. Chyba nie majątek.
W każdym przypadku odpytujesz po adresie i dostajesz dane geo. Listę, bo może odnaleźć kilka lokalizacji wg adresu. Zależy czy adres jest dokładny i jednoznaczny.

Grzegorz Świdwa
Grzegorz Świdwa
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:385
0

A tak z ciekawości bo zacząłem się zastanawiać. Czy to aby możliwe aby lokalizację po adresie wyciągać np z API Google maps, a inne informacje na podstawie np openstreetmap? To nie gryzie się jakoś w regulaminie?

JP
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:1065
0

Nie. W Azure mozesz miec plan S0 (tanszy) i S1 (drozszy) i używać oby optymalizujac koszty.

BL
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:95
0

Dobra, wracamy do początku. Powiedzmy że udało mi się zgobyć geolokalizację do wszystkich adresów lub to przynajmniej zatysfakcjonującej mnie większości :) ( jak się chce to zawsze można ) to co proponujecie jeżeli chodzi o WPF ? Trochę nie rozumiem dlaczego w momencie podania danych GEO już jest to inna forma zapytania do API niż zwykłe płatne zapytanie np w przypadku google maps.

Grzegorz Świdwa
Grzegorz Świdwa
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:385
1

Jeżeli masz już w bazie dane geolokalizacji to po prostu nanieś je na mapie. Pełno przykładów w necie

Roman Mokrzan
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 2 miesiące
  • Postów:159
0
BLAZO napisał(a):

No właśnie nie mam długości i szerokości oraz na przyszłość też ich nie będzie. Trzeba byłoby pisać oddzielny automat który ściąga współrzędne. Mam adres miasto i kod pocztowy.

Praktycznie żaden dostarczyciel API do geocodingu nie pozwala na cache danych. Z pewnością nie pozwala na to google - czyli jeśli zrobisz do nich zapytanie o lat,lng na podstawie adresu to nie masz prawa tego zapamiętać po swojej stronie.


Roman Mokrzan
nie wiem gdzie się edytuje - jak koledzy niżej napisali można keszować na 30 dni
JP
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:1065
1

30 dni chyba można.
https://cloud.google.com/maps-platform/terms/maps-service-terms

Tam jest te z info, że nie można użyć Google Geo API z innymi mapami niż Google. Taki pytanie te tu było.

edytowany 1x, ostatnio: jacek.placek
Roman Mokrzan
masz rację z tymi 30 dniami; i można użyć na innych niż googlowe mapy: "Customer may use Google Maps Content from the Directions API in Customer Applications without a corresponding Google Map" (oczywiście zależy jakie API)
Grzegorz Świdwa
Grzegorz Świdwa
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:385
0

Tak, 30 dni można przechowywać w prywatnej bazie długość i szerokość geograficzną. Czyli z na 30 dni robisz update po prostu. Update i tak chyba jest w planach co jakiś czas więc to nie problem

edytowany 1x, ostatnio: Grzegorz Świdwa
BL
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:95
0

Tak jak już napisałem. Udało mi się zdobyć dane geo. Teraz szukam odpowiedniego darmowego narzędzia dzięki któremu będę mógł to nakładać to na mapę.

Grzegorz Świdwa
Grzegorz Świdwa
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:385
1

obejrzyj te kursy, w opisie filmu masz inne części. Po ogarnięciu tego będziesz mógł zrobić to co chcesz :)
Polecam w tym celu utworzyć kontrolkę w WinForms i zahostować ją w okienku WPF następująco
https://stackoverflow.com/questions/2293219/is-it-possible-to-host-a-winform-form-within-a-wpf-form-via-a-container-wrapper

edytowany 1x, ostatnio: Grzegorz Świdwa
BL
@Grzegorz Świdwa: Dziękuję
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)