Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Generator współrzędnych. Problem
warland
post
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
 
Start new topic
Odpowiedzi
warland
post
Post #2





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

Posty w temacie
- warland   [PHP] Generator współrzędnych. Problem   19.02.2018, 00:14:02
- - Kshyhoo   A jakie są kryteria poprawności?   19.02.2018, 07:10:51
- - warland   Cytat(Kshyhoo @ 19.02.2018, 07:10:51 ...   19.02.2018, 08:09:47
- - trueblue   http://forum.php.pl/index.php?s=&showt...t...   19.02.2018, 08:12:32
- - warland   Cytat(trueblue @ 19.02.2018, 08:12:32...   19.02.2018, 08:17:32
- - trueblue   Cytat(warland @ 19.02.2018, 08:17:32 ...   19.02.2018, 08:30:19
- - Pyton_000   A nie możesz po prostu wszystkich liczb zapisać z ...   19.02.2018, 08:32:35
- - warland   Cytat(trueblue @ 19.02.2018, 08:30:19...   19.02.2018, 08:41:17
- - trueblue   Cytat(warland @ 19.02.2018, 08:41:17 ...   19.02.2018, 08:48:47
- - warland   nie potrafię sobie z tym poradzić. Więc oferuje 15...   19.02.2018, 14:11:49
- - aras785   O to chodzi? [PHP] pobierz, plaintext <?php// ...   19.02.2018, 14:51:32
- - nospor   @aras pomijajac fakt, ze jakos kazdy tutaj ignoruj...   19.02.2018, 15:17:41
- - warland   a pisałem by do mnie najpierw się zgłosić by nie b...   19.02.2018, 15:36:01
- - nospor   @warland draki by nie bylo jakbys sie nie wyglupia...   19.02.2018, 15:40:13
- - warland   szczerze to chciałem udowodnić sobie i swoim znajo...   19.02.2018, 15:53:46
- - nospor   CytatJeśli porównasz zaokrągloną do jednego miejsc...   19.02.2018, 15:57:11
- - warland   a świstak zawija w te sreberka i zawija.. przejrzy...   19.02.2018, 16:06:46
- - nospor   Juz pedze szukac twoim tematow na stackoverlow... ...   19.02.2018, 17:47:33
- - Pyton_000   @nospor aż zaczynam się ciebie bać Powinieneś pra...   19.02.2018, 18:17:40
- - warland   Cytat(nospor @ 19.02.2018, 17:47:33 )...   19.02.2018, 20:54:48
- - nospor   Hmm.... koles https://stackoverflow.com/users/9373...   19.02.2018, 21:08:21


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

 



RSS Aktualny czas: 10.10.2025 - 22:54