Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Closed TopicStart new topic
> [PHP] Generator współrzędnych. Problem
warland
post 19.02.2018, 00:14:02
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


Witam.
Potrzebuję pomocy we wprowadzeniu do skryptu pewnej poprawki.

Skrypt generuje współrzędne z danego przedziału liczb.
Potrzebuję dodać wyjątek który będzie omijał wyniki gdy tylko jedna ze współrzędnych posiada 2 liczby po przecinku.
Przykład na podstawie wyników generowanych przez poniższy skrypt:
- wygenerowana współrzędna (49.1 , 16) - poprawna, (49.15 , 16.1) - niepoprawna, (49.15 , 16.05) - poprawna

Co dodać w skrypcie by nie były wyświetlane te współrzędne niepoprawne?


Skrypt:
  1. <?php
  2. // wielkość pola między 1 a 12
  3. $box_size = 0.05;
  4.  
  5. // liczby 84 i 180 są maksymalną wielkością (od ujemnej do dodatniej) mapy google
  6. $lat_limit = 50;
  7. $lat_limit_min = 49;
  8. $lng_limit = 17;
  9. $lng_limit_min = 16;
  10.  
  11. $result = '';
  12. $land_insert_statement = "coord_slug , lat , lng";
  13. $result .= $land_insert_statement;
  14. $result .= '<br>';
  15.  
  16. $i = 0.05;
  17. for ($lng = $lng_limit_min; $lng <= $lng_limit; $lng = $lng + $box_size) {
  18.  
  19. for ($lat = $lat_limit_min; $lat <= $lat_limit; $lat = $lat + $box_size) {
  20. // Zapobiega błędowi, w którym -180 i 180 nakładają się, tworząc ląd, do którego interfejs użytkownika nie może uzyskać dostępu
  21. if ($lng != '-180') {
  22. $coord_slug = $lat . ',' . $lng;
  23. $result .= " . $coord_slug . ', ' . $lat . ', ' . $lng . '";
  24. if ($i % 1000 == 0)
  25. {
  26. $result .= ';';
  27. $result .= '<br>';
  28. $result .= $land_insert_statement;
  29. $result .= '<br>';
  30. } else {
  31. $result .= ',';
  32. }
  33. $result .= '<br>';
  34. $i++;
  35. }
  36. }
  37. }
  38.  
  39.  
  40. $search = ',';
  41. $replace = ';';
  42. $result = strrev(implode(strrev($replace), explode($search, strrev($result), 2)));
  43.  
  44. echo $result;


Ten post edytował warland 19.02.2018, 16:16:14
Go to the top of the page
+Quote Post
Kshyhoo
post 19.02.2018, 07:10:51
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




A jakie są kryteria poprawności?


--------------------
Go to the top of the page
+Quote Post
warland
post 19.02.2018, 08:09:47
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


Cytat(Kshyhoo @ 19.02.2018, 07:10:51 ) *
A jakie są kryteria poprawności?


nie bardzo rozumiem.
Skrypt generuje współrzędne z danego zakresu liczb (w podanym skrypcie jest to między 49 a 50 długości geograficznej i między 16 a 17 szerokości. Generowana jest siatka punktów z dokładnością do 0.05.
Potrzebuje by skrypt wyeliminował tylko te wyniki gdy zachodzi konkretne zdarzenie. Gdy w danym wyniku gdy 1 lub 2 współrzędna jest liczbą z dwoma liczbami po przecinku a druga jest liczbą całkowitą lub z jedną liczbą po przecinku.

w wynikach generatora wygląda to przykładowo tak:
. 50,16.04 . ', ' . 50 . ', ' . 16.04 . ',
. 49,16.05 . ', ' . 49 . ', ' . 16.05 . ',
. 49.45,16.05 . ', ' . 49.45 . ', ' . 16.05 . ',

więc wg koncepcji wynik środkowy . 49,16.05 . ', ' . 49 . ', ' . 16.05 . ', nie powinien zostać wyświetlony, ponieważ pierwsza liczba jest liczbą całkowitą z druga z 2 liczbami po przecinku.
W każdym innym wypadku gdy 0=0.0 , 0=0 , 0.00=0.00 wynik powinien być wyświetlony.
Gdy jest 0=0.00 , 0.0=0.00 , 0.00=0 , 0.00=0.0 wynik nie powinien się pojawić po wygenerowaniu zestawu.

Chodzi o ukrycie tych danych które nie są wskazane. Jest to potrzebne np. mi do wygenerowania zestawu współrzędnych które będą wrzucone do bazy danych. W wypadku gdy będzie to ponad 20 tys rekordów ręczne usunięcie współrzędnych nie psujących do kryteriów będzie kłopotliwe. Więc chodzi tylko i wyłącznie by skrypt nie wyświetlał tych zestawów współrzędnych w wynikach.

Ten post edytował warland 19.02.2018, 08:14:34
Go to the top of the page
+Quote Post
trueblue
post 19.02.2018, 08:12:32
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


http://forum.php.pl/index.php?s=&showt...t&p=1228571


--------------------
Go to the top of the page
+Quote Post
warland
post 19.02.2018, 08:17:32
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


Cytat(trueblue @ 19.02.2018, 08:12:32 ) *

tamten temat dotyczy całkowicie innego zagadnienia niż przedstawione tutaj.
Go to the top of the page
+Quote Post
trueblue
post 19.02.2018, 08:30:19
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Cytat(warland @ 19.02.2018, 08:17:32 ) *
tamten temat dotyczy całkowicie innego zagadnienia niż przedstawione tutaj.

Czyli uważasz, że:
Cytat
parseInt(liczba)==liczba, jeśli tak, to oznacza, że nie ma wartości dziesiętnych

jest wskazówką nie na miejscu?
Naprawdę nie możesz analogicznie do tego rozwiązania sprowadzić liczby do jednego miejsca po przecinku i porównać z nią samą przed zaokrągleniem?


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 19.02.2018, 08:32:35
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A nie możesz po prostu wszystkich liczb zapisać z 2miejscami ?
Go to the top of the page
+Quote Post
warland
post 19.02.2018, 08:41:17
Post #8





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


Cytat(trueblue @ 19.02.2018, 08:30:19 ) *
Czyli uważasz, że:

jest wskazówką nie na miejscu?
Naprawdę nie możesz analogicznie do tego rozwiązania sprowadzić liczby do jednego miejsca po przecinku i porównać z nią samą przed zaokrągleniem?

a czy ja chce zaokrąglać jakieś liczby?

Cytat(Pyton_000 @ 19.02.2018, 08:32:35 ) *
A nie możesz po prostu wszystkich liczb zapisać z 2miejscami ?

nie chodzi o zapisanie liczb z 2 miejscami po przecinku a usunięcie (ukrycie) danych zestawów współrzędnych. Te współrzędne tworzą figury. Niepotrzebne zestawy które chce ukryć w wynikach będą tworzyć precedens nakładania się figur. Dlatego chce wyeliminować te zestawy z wyników które nie spełniają warunku.
Go to the top of the page
+Quote Post
trueblue
post 19.02.2018, 08:48:47
Post #9





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Cytat(warland @ 19.02.2018, 08:41:17 ) *
a czy ja chce zaokrąglać jakieś liczby?

A czy ja mówię, że chcesz? Jeśli porównasz zaokrągloną do jednego miejsca liczbę z nią samą, to będziesz wiedział czy przed zaokrągleniem były setne części czy nie.


--------------------
Go to the top of the page
+Quote Post
warland
post 19.02.2018, 14:11:49
Post #10





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


nie potrafię sobie z tym poradzić.
Więc oferuje 150 PLN osobie która się zgłosi i doda do skryptu warunek o którym pisałem na początku.
Płacę od razu po zrobieniu na Paypal.
Go to the top of the page
+Quote Post
aras785
post 19.02.2018, 14:51:32
Post #11





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


O to chodzi?

  1. <?php
  2. // wielkość pola między 1 a 12
  3. $box_size = 0.05;
  4.  
  5. // liczby 84 i 180 są maksymalną wielkością (od ujemnej do dodatniej) mapy google
  6. $lat_limit = 50;
  7. $lat_limit_min = 49;
  8. $lng_limit = 17;
  9. $lng_limit_min = 16;
  10.  
  11. $result = '';
  12. $land_insert_statement = "coord_slug , lat , lng";
  13. $result .= $land_insert_statement;
  14. $result .= '<br>';
  15.  
  16. $i = 0.05;
  17. for ($lng = $lng_limit_min; $lng <= $lng_limit; $lng = $lng + $box_size) {
  18.  
  19. for ($lat = $lat_limit_min; $lat <= $lat_limit; $lat = $lat + $box_size) {
  20. // Zapobiega błędowi, w którym -180 i 180 nakładają się, tworząc ląd, do którego interfejs użytkownika nie może uzyskać dostępu
  21. if ($lng != '-180') {
  22. $coord_slug = $lat . ',' . $lng;
  23. $e_lat = explode('.',$lat);
  24. $e_lng = explode('.',$lng);
  25. if(((array_key_exists(1, $e_lat) && strlen($e_lat[1])==2) && !(array_key_exists(1, $e_lng) && strlen($e_lng[1])==2)) || ((array_key_exists(1, $e_lng) && strlen($e_lng[1])==2) && !(array_key_exists(1, $e_lat) && strlen($e_lat[1])==2))) continue; // ew. uzyj w celu zaznaczenia: $result .= '<font color="red">blad: </font>';
  26.  
  27. $result .= " . $coord_slug . ', ' . $lat . ', ' . $lng . '";
  28. if ($i % 1000 == 0)
  29. {
  30. $result .= ';';
  31. $result .= '<br>';
  32. $result .= $land_insert_statement;
  33. $result .= '<br>';
  34. } else {
  35. $result .= ',';
  36. }
  37. $result .= '<br>';
  38. $i++;
  39. }
  40. }
  41. }
  42.  
  43.  
  44. $search = ',';
  45. $replace = ';';
  46. $result = strrev(implode(strrev($replace), explode($search, strrev($result), 2)));
  47.  
  48. echo $result;
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 15:17:41
Post #12





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




@aras pomijajac fakt, ze jakos kazdy tutaj ignoruje proste rozwiazanie co podal trueblue to w twoim rozwiazaniu mogles chociaz stworzyc funkcje,np. areTwoDigitsAfterDot() a nie tworzyc takiego potworka co sie czytac nie da wink.gif Za te 150PLN mogles sie troche wysilic wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
warland
post 19.02.2018, 15:36:01
Post #13





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


a pisałem by do mnie najpierw się zgłosić by nie było draki..
i już kilka chętnych się zgłosiło przed tą publikacją.
Ale ok. Jakoś to załatwimy inaczej. Wysłałem pw
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 15:40:13
Post #14





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




@warland draki by nie bylo jakbys sie nie wyglupial z tymi 150PLN wink.gif

za te 10 sekund roboty to i za 10zl bys mial chetnych, to tak na przyszlosc. Generalnie fajnie, ze doceniasz prace programistyczne ale 9000PLN/h to lekkie przesacowanie wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
warland
post 19.02.2018, 15:53:46
Post #15





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


szczerze to chciałem udowodnić sobie i swoim znajomym na czym polega różnica między polskim forum a np. stackoverflow gdzie zazwyczaj nauka kogoś mało doświadczonego polega na wyjaśnieniu problemu by użytkownik dał radę sobie sam z problemem z użyciem przykładów, wzorów które dostaje a nie rzucanie tylko ogólnikami jak jest to tutaj w dużej części.
Większość wiedzy którą posiadłem mam stamtąd niż z polskich for gdzie niby są te przedszkola, pomoc dla niedoświadczonych itp.

150 pln to fakt, dużo za coś takiego ale cóż doceniam zarazem tych co robią to za kasę tak jak ja dostaje odpowiednie pieniądze za swoją.
Nie rozumiem tylko ludzi udających ekspertów, rzucających ogólnikami nie wnoszącymi nic do rozwiązania danego problemu. Może lepiej by w ogóle nie pisali niż tylko zaśmiecali wątek tylko po to by nabić sobie posty. Przykładem jest ten temat.

Na takich forach jak "przedszkole" nie wiem po co zabierają głos osoby które niby chcą pomóc a rzucają ogólnikiem udając jacy oni mądrzy a zarazem piszą że nie będą sobie głowy zawracać by komuś coś wyjaśnić.

a teraz "eksperci" jak chcą mogą porzucać sobie trochę kamieniami..
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 15:57:11
Post #16





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
Jeśli porównasz zaokrągloną do jednego miejsca liczbę z nią samą,
To nie jest ogolnik. To jest naprawde konkretnie podane co masz zrobic. Ale jak sie wacpanu nie chce...
I na stackoverflow za tego typy pytania bardzo czesto leca minusy od samych uzytkownikow i temat bardzo szybko jest z automatu zamykany wiec sobie daruj takie wyssane z palca porownania bo tez siedze na stackoverflow i widze jak to wyglada.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
warland
post 19.02.2018, 16:06:46
Post #17





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


a świstak zawija w te sreberka i zawija.. przejrzyj moje pytania na stackoverflow.. Jak już ktoś decyduje się pomóc to robi to konkretnie dokładnie wyjaśniając zagadnienie (nawet jak sam temat jest minusowany.
Ale co ja tam wiem smile.gif

p.s. i chodzi tylko o przedszkole. Rozumiem tego typu pomoc na innych forach gdzie umieszczam pytania i nie oczekuję wyjaśnienia a względnej wskazówki.
Natomiast w przedszkolu nie polega na tym by walnąć tekst który dla laika w danym problemie nie jest żadną wskazówką.

Ten post edytował warland 19.02.2018, 16:12:37
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 17:47:33
Post #18





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Juz pedze szukac twoim tematow na stackoverlow... Moze miales farta. Generalnie widzialem setki tematow jak ten tutaj, gdzie problem jest banalny a Panu leniuszkowi sie nie chcialo i temat byl z miejsca zamykany. Jest na to na stackoverlow specjalny paragraf.

edit: ze mialem minutke wolnego to az sprawdzilem. Wszakze nie raczyles podac nicku pod jakim mam szukac, ale jakos znalazlem. Na stack overflow napisales az 3 tematy. Faktycznie, wyciagnales stamtad duza wiedze... z tego co widze to jednak wiecej pomocy dostales tutaj.
Mniejsza o to. Dwa z tych 3 tematow zostaly zgloszone do zamkniecia. Jednym z nich jest temat dokladnie ten sam co ten tutaj. Kurcze....
Cytat
szczerze to chciałem udowodnić sobie i swoim znajomym na czym polega różnica między polskim forum a np. stackoverflow

To zes faktycznie udowodnil podajac rzetelne porownanie :/ Prace w TVN masz od zaraz wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post 19.02.2018, 18:17:40
Post #19





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


@nospor aż zaczynam się ciebie bać biggrin.gif Powinieneś pracować jako prawa noga Rutkowskiego biggrin.gif
Go to the top of the page
+Quote Post
warland
post 19.02.2018, 20:54:48
Post #20





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


Cytat(nospor @ 19.02.2018, 17:47:33 ) *
edit: ze mialem minutke wolnego to az sprawdzilem. Wszakze nie raczyles podac nicku pod jakim mam szukac, ale jakos znalazlem. Na stack overflow napisales az 3 tematy. Faktycznie, wyciagnales stamtad duza wiedze... z tego co widze to jednak wiecej pomocy dostales tutaj.
Mniejsza o to. Dwa z tych 3 tematow zostaly zgloszone do zamkniecia. Jednym z nich jest temat dokladnie ten sam co ten tutaj. Kurcze....

To zes faktycznie udowodnil podajac rzetelne porownanie :/ Prace w TVN masz od zaraz wink.gif

Proponuje dokładnie sprawdzić bo inaczej to Rutkowski jedynie da Ci posadę wystawki (jak wiesz co to takiego) smile.gif
niektórzy w życiu gdy nie mają określonego bytu w przestrzeni surrealizmu interpretacji swojej jaźni robią sobie fotkę z profesorem by czuć się mądrzejszym.

pewnie zaraz dostanę bana bo niby moderatorowi można więcej ale co mi tam. Ja dużo nie stracę, kolega podbuduje sobie swoje ego smile.gif

a już całkowicie nie rozumiem człowieka którego tak coś uwiera że nie mógł sobie odpuścić pominusowania tam tych tematów. To już chyba mówi wszystko o koledze.. nic dodać, nic ująć.. chyba dzieci w przedszkolu mają większy szacunek do siebie. Pomodlę się o Twoją zdruzgotaną duszę bom dobry człek i życzę ludziom szczęśliwego życia.

Ten post edytował warland 19.02.2018, 21:05:38
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 08:00