Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [JavaScript][MySQL][PHP]Kontury na obrazku
brzanek
post 22.03.2018, 10:49:54
Post #1





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Witam szczerze mówiąc nie wiem jak się do tego zabrać ale potrzebuję zrobić coś takiego jak jest na tym obrazku


Wartości były by pobierane z bazy danych mysql
  1. <?
  2. include('db.php');
  3. include('array.php');
  4. ?>
  5. <link href="http://nowa.pogoda-zachodniopomorskie.pl/testt/css/bootstrap.css" rel="stylesheet">
  6. <link href="css/style.css" rel="stylesheet">
  7. <?
  8. echo '<div class="container">';
  9. echo '<div class="col-xs-12 col-sm-6 col-md-6"><img src="images/mapa.png" class="img-responsive" alt="">';
  10. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =1 ORDER BY id ASC LIMIT 1");
  11. while ( $row = mysqli_fetch_array($result) ) {
  12. echo "<div class='choszczno' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  13. }
  14. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =2 ORDER BY id ASC LIMIT 1");
  15. while ( $row = mysqli_fetch_array($result) ) {
  16. echo "<div class='szczecin' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  17. }
  18. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =4 ORDER BY id ASC LIMIT 1");
  19. while ( $row = mysqli_fetch_array($result) ) {
  20. echo "<div class='swinoujscie' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  21. }
  22. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =3 ORDER BY id ASC LIMIT 1");
  23. while ( $row = mysqli_fetch_array($result) ) {
  24. echo "<div class='koszalin' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  25. }
  26. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =5 ORDER BY id ASC LIMIT 1");
  27. while ( $row = mysqli_fetch_array($result) ) {
  28. echo "<div class='walcz' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  29. }
  30. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =6 ORDER BY id ASC LIMIT 1");
  31. while ( $row = mysqli_fetch_array($result) ) {
  32. echo "<div class='kolobrzeg' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  33. }
  34. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =7 ORDER BY id ASC LIMIT 1");
  35. while ( $row = mysqli_fetch_array($result) ) {
  36. echo "<div class='debno' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  37. }
  38. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =8 ORDER BY id ASC LIMIT 1");
  39. while ( $row = mysqli_fetch_array($result) ) {
  40. echo "<div class='drawsko' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  41. }
  42. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =9 ORDER BY id ASC LIMIT 1");
  43. while ( $row = mysqli_fetch_array($result) ) {
  44. echo "<div class='darlowo' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  45. }
  46. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =10 ORDER BY id ASC LIMIT 1");
  47. while ( $row = mysqli_fetch_array($result) ) {
  48. echo "<div class='gryfice' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  49. }
  50. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =11 ORDER BY id ASC LIMIT 1");
  51. while ( $row = mysqli_fetch_array($result) ) {
  52. echo "<div class='nowogard' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  53. }
  54. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =12 ORDER BY id ASC LIMIT 1");
  55. while ( $row = mysqli_fetch_array($result) ) {
  56. echo "<div class='stargard' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  57. }
  58. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =13 ORDER BY id ASC LIMIT 1");
  59. while ( $row = mysqli_fetch_array($result) ) {
  60. echo "<div class='szczecinek' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  61. }
  62. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =14 ORDER BY id ASC LIMIT 1");
  63. while ( $row = mysqli_fetch_array($result) ) {
  64. echo "<div class='czlopa' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  65. }
  66. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =15 ORDER BY id ASC LIMIT 1");
  67. while ( $row = mysqli_fetch_array($result) ) {
  68. echo "<div class='czaplinek' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  69. }
  70. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =16 ORDER BY id ASC LIMIT 1");
  71. while ( $row = mysqli_fetch_array($result) ) {
  72. echo "<div class='slawno' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  73. }
  74. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =17 ORDER BY id ASC LIMIT 1");
  75. while ( $row = mysqli_fetch_array($result) ) {
  76. echo "<div class='bobolice' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  77. }
  78. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =35 ORDER BY id ASC LIMIT 1");
  79. while ( $row = mysqli_fetch_array($result) ) {
  80. echo "<div class='kamien' data-toggle='tooltip' data-placement='top' title='Temperatura &deg;C' style='color: ".$tempArray4[ceil($row['temperature'])].";'> ".$row['temperature']."</div>";
  81. }
  82. echo '</div>';
  83. echo '</div>';
  84. ?>


Teraz jak połączyć te wartości liniami zaokrąglonymi (tak jak na obrazku wyżej) i na koniec jak kolorować pola odcinane liniami?

Czy jest to możliwe w php?
Go to the top of the page
+Quote Post
nospor
post 22.03.2018, 10:55:30
Post #2





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




No najpierw musisz wyliczyc te obszary a to z php ma sredni zwiazek - ot kupa obliczen matematycznych na podstawie jakiegos fajnego algorytmu.

ps: w cudny sposob pobierasz dane z bazy 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
trueblue
post 22.03.2018, 10:55:44
Post #3





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

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


A masz w bazie zapisane współrzędne tych punktów?


--------------------
Go to the top of the page
+Quote Post
brzanek
post 22.03.2018, 11:13:14
Post #4





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Mogę mieć te współrzędne.
Go to the top of the page
+Quote Post
trueblue
post 22.03.2018, 11:19:41
Post #5





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

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


Jeśli w PHP to przychodzi mi taki pomysł:
1. Dla każdego punktu danych obliczasz w jakim promieniu ma sąsiadów.
2. Kreślisz okręgi o wyliczonym promieniu względem środka (punktu danej), zaczynając od tych o największym promieniu przypisanych do najniższego zakresu (czyli na najniższej warstwie największe okręgi).
3. Na całość nakładasz mocny gaussian blur.
4. Potem robisz posteryzację obrazka.
5. Po posteryzacji otrzymane kolory obszarów mogą nie odpowiadać tym, którymi chcesz kolorować obszary, więc musisz znaleźć wszystkie jakie otrzymałeś, zamapować do docelowych i pokolorować obszary tymi docelowymi.

Być może przy kreśleniu okręgów powstaną czarne przestrzenie jeśli gdzieniegdzie okręgi nie będą się ze sobą stykać, więc rozwiązaniem może być wypełnienie całości na start kolorem powiązanym z najniższym zakresem i już niekreślenie okręgów przypisanych do tego zakresu.

A w JS być może to:
https://developers.google.com/maps/document...s/layer-heatmap

Ten post edytował trueblue 22.03.2018, 11:26:40


--------------------
Go to the top of the page
+Quote Post
brzanek
post 22.03.2018, 21:03:13
Post #6





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Znalazłem troszkę inny na to sposób tylko mam jeden problem
Jak zastąpić dane w "" danymi z bazy mysql
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>GridLayer Test</title>
  5. <meta charset="utf-8" />
  6. <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet/v1.0.0-beta.2/leaflet.css"/>
  7. <style>
  8. body {
  9. padding: 0;
  10. margin: 0;
  11. }
  12. html, body, #map {
  13. height: 590px;
  14. width: 600px;
  15. position: absolute;
  16. opacity: 0.999;
  17. }
  18. .tlo {
  19. height: 603px;
  20. width: 610px;
  21. position: absolute;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div id="map"></div>
  27. <div class="tlo">
  28. <img src="http://brzanek.webd.pl/2017/Leaflet.idw-master/example/mapaaa.png">
  29. </div>
  30. </body>
  31. <script src="http://cdn.leafletjs.com/leaflet/v1.0.0-beta.2/leaflet.js"> </script>
  32. <script src="../src/leaflet-idw.js"></script>
  33. <script>
  34.  
  35. var meteoPoints = [
  36. [53.165246, 15.405640, "11"],
  37. [53.423798, 14.546544, "0"],
  38. [54.188946, 16.177284, "0"],
  39. [53.901899, 14.243151, "0"],
  40. [53.272598, 16.466926, "0"],
  41. [54.172996, 15.591984, "0"],
  42. [52.731677, 14.696901, "0"],
  43. [53.532029, 15.811808, "0"],
  44. [54.429791, 16.398224, "0"],
  45. [53.913285, 15.201148, "0"],
  46. [53.673976, 15.110885, "0"],
  47. [53.334351, 15.046874, "0"],
  48. [53.709982, 16.693660, "0"],
  49. [53.087991, 16.118558, "11"],
  50. [53.555588, 16.229920, "0"],
  51. [54.358499, 16.677729, "0"],
  52. [53.952695, 16.590419, "0"],
  53. [53.298850, 15.902762, "0"],
  54. [53.037661, 15.663925, "0"],
  55. [52.996378, 15.212792, "0"],
  56. [53.465263, 15.336522, "0"],
  57. [53.104978, 15.080064, "0"],
  58. [52.922836, 14.855624, "0"],
  59. [52.960999, 14.431242, "0"],
  60. [53.251748, 14.487758, "0"],
  61. [53.550950, 14.570500, "0"],
  62. [53.147528, 14.896472, "0"],
  63. [53.562454, 14.827649, "0"],
  64. [53.638311, 15.622662, "0"],
  65. [54.007723, 15.981029, "0"],
  66. [53.772207, 15.408535, "0"],
  67. [54.027723, 15.533004, "0"],
  68. [54.062919, 15.270917, "0"],
  69. [54.081248, 15.015305, "0"],
  70. [53.969001, 14.776628, "0"],
  71. [54.027660, 14.759995, "0"]
  72. ];
  73.  
  74. var map = L.map('map').setView([53.606015, 15.517806], 8);
  75.  
  76. var tiles = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
  77. attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
  78. }).addTo(map);
  79.  
  80. var idw = L.idwLayer(meteoPoints,{
  81. opacity: 3,
  82. maxZoom: 8,
  83. cellSize: 1,
  84. exp: 5,
  85. max: 30,
  86. min: -25
  87. }).addTo(map);
  88.  
  89. </script>
  90. </html>
Go to the top of the page
+Quote Post
SmokAnalog
post 22.03.2018, 21:07:40
Post #7





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


  1. let data = <?php echo json_encode($data) ?>;


Albo zrób Ajaxa/fetch do pliku, który wypluwa te dane. Pewnie pierwszy sposób będzie łatwiejszy.
Go to the top of the page
+Quote Post
brzanek
post 22.03.2018, 22:12:51
Post #8





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Nie bardzo wiem jak to zrobić.
Pojawił się jeszcze jeden problem pobierane wartości z bazy danych mogą być też ujemne.
Czy w tym kodzie jaki podałem wyżej mogę zastosować jakąś tablicę gdzie przypiszę coś takiego
danem z bazy mysql
1 = -22 (wartość z bazy)
2 = -21 (wartość z bazy)
3 = -20 (wartość z bazy)
itd
Teraz w tym miejscu chciałbym to zastosować
var meteoPoints = [
[53.165246, 15.405640, "0"],
[53.423798, 14.546544, "0"],
[54.188946, 16.177284, "0"],
[53.901899, 14.243151, "0"],
...
Tu gdzie jest 0
Go to the top of the page
+Quote Post
SmokAnalog
post 22.03.2018, 22:46:13
Post #9





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Te punkty meteo mają być luzem w kodzie? Coś mi to się nie podoba.
Go to the top of the page
+Quote Post
brzanek
post 22.03.2018, 23:01:54
Post #10





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Mogą być luzem lub przypisane na sztywno albo mogą też być pobierane z bazy danych.
Ważne aby były w takiej formie
  1. var meteoPoints = [
  2. [53.165246, 15.405640, "11"],
  3. [53.423798, 14.546544, "0"],
  4. [54.188946, 16.177284, "0"],
  5. [53.901899, 14.243151, "0"],
  6. [53.272598, 16.466926, "0"],
  7. [54.172996, 15.591984, "0"],
  8. [52.731677, 14.696901, "0"],
  9. [53.532029, 15.811808, "0"],
  10. [54.429791, 16.398224, "0"],
  11. [53.913285, 15.201148, "0"],
  12. [53.673976, 15.110885, "0"],
  13. [53.334351, 15.046874, "0"],
  14. [53.709982, 16.693660, "0"],
  15. [53.087991, 16.118558, "11"],
  16. [53.555588, 16.229920, "0"],
  17. [54.358499, 16.677729, "0"],
  18. [53.952695, 16.590419, "0"],
  19. [53.298850, 15.902762, "0"],
  20. [53.037661, 15.663925, "0"],
  21. [52.996378, 15.212792, "0"],
  22. [53.465263, 15.336522, "0"],
  23. [53.104978, 15.080064, "0"],
  24. [52.922836, 14.855624, "0"],
  25. [52.960999, 14.431242, "0"],
  26. [53.251748, 14.487758, "0"],
  27. [53.550950, 14.570500, "0"],
  28. [53.147528, 14.896472, "0"],
  29. [53.562454, 14.827649, "0"],
  30. [53.638311, 15.622662, "0"],
  31. [54.007723, 15.981029, "0"],
  32. [53.772207, 15.408535, "0"],
  33. [54.027723, 15.533004, "0"],
  34. [54.062919, 15.270917, "0"],
  35. [54.081248, 15.015305, "0"],
  36. [53.969001, 14.776628, "0"],
  37. [54.027660, 14.759995, "0"]
  38. ];

To co w cudzysłowie to ma się pobierać z bazy danych. Współrzędne mogą być przypisane na sztywno.

Ten post edytował brzanek 22.03.2018, 23:04:24
Go to the top of the page
+Quote Post
SmokAnalog
post 22.03.2018, 23:24:00
Post #11





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Dobrze, ale w jaki sposób mają się połączyć? Jaka cecha przypisuje dany punkt do danej liczby? Bo po samej kolejności to raczej dziwacznie.
Go to the top of the page
+Quote Post
trzczy
post 23.03.2018, 06:51:04
Post #12





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Trzeba poszukać bibliotek na hasła:


dla izoterm:
contour | isoline


jeśli idzie o wygładzanie łamanych:

interpolation


https://jpgraph.net/download/manuals/chunkhtml/ch15s06.html
https://plot.ly/nodejs/contour-plots/
Go to the top of the page
+Quote Post
brzanek
post 23.03.2018, 07:36:48
Post #13





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Chodzi o to że kolory jakie są przypisane do wartości są od 0 do 1
  1. 0: '#ffd4ff',
  2. 0.1: '#ffb5ff',
  3. 0.12: '#f966f9',
  4. 0.15: '#d34a95',
  5. 0.17: '#7d0000',
  6. 0.2: '#a60000',
  7. 0.23: '#e11400',
  8. 0.25: '#ff3300',
  9. 0.27: '#ff6100',
  10. 0.3: '#ffa100',
  11. 0.32: '#ffc03d',
  12. 0.35: '#ffe878',
  13. 0.4: '#01a515',
  14. 0.43: '#01c318',
  15. 0.45: '#00e51b',
  16. 0.47: '#00ff42',
  17. 0.5: '#5fff88',
  18. itd
  19. 0.95: '#ef77fe',
  20. 0.97: '#ef77fe',
  21. 1: '#ef77fe'

Nie mam jak zastosować danego koloru do ujemnej wartości dlatego chcę zrobić coś takiego jak tablice w php czyli np.
  1. $tempArray4=array(
  2. '-20' => '1',
  3. '-19' => '2',
  4. '-18' => '2.3',
  5. '-17' => '2.5',
  6. '-16' => 2.7'
  7. );

Teraz do pola gdzie podawane są współrzędne i wartości dodał bym coś takiego
zapytanie do bazy i
  1. [54.027660, 14.759995, ".$tempArray4($row['tempmax']).""],


trzczy ten plot to fajna sprawa ale nie ma tam chyba możliwości wykorzystania tego w php. Tam jest chyba tylko opcja na pythona którego próbowałem odpalić ale coś poszło nie tak i nie zadziałał.
Go to the top of the page
+Quote Post
trzczy
post 23.03.2018, 07:40:17
Post #14





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Tam chyba jest też javascript. Jeszcze może ten trop https://github.com/d3/d3-contour
Go to the top of the page
+Quote Post
brzanek
post 23.03.2018, 09:13:54
Post #15





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Ta strona też nie jest zła tylko tam nie mogę dodać tam mojej mapy z obrazkiem

Chyba jestem zmuszony pracować na tym co dałem wyżej tylko muszę uporać się z tym #13
Go to the top of the page
+Quote Post
trueblue
post 23.03.2018, 11:10:04
Post #16





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

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


Sporo już w tym siedzisz, a masz problemy z podstawami.

Interpolacja zakresu <xmin,xmax> do <0,1>:

y=(x-min)/(xmax-xmin)


--------------------
Go to the top of the page
+Quote Post
brzanek
post 23.03.2018, 15:52:56
Post #17





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Chyba nie bardzo
x i y to współrzędne a wartość pobierana z bazy danych to tak zwane z czyli wysokość
Go to the top of the page
+Quote Post
trueblue
post 23.03.2018, 15:55:00
Post #18





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

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


A co maja do tego współrzędne x i y? Interpolujesz z.


--------------------
Go to the top of the page
+Quote Post
brzanek
post 24.03.2018, 19:15:55
Post #19





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Nic mi nie chce wyjść.
Mam przypisane kolory do danych wartości a i tak skrypt robi sobie co chce i daje jakieś swoje dziwne kolory.
Mam taki kod do wyświetlania obrazka
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>GridLayer Test</title>
  5. <meta charset="utf-8" />
  6. <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet/v1.0.0-beta.2/leaflet.css"/>
  7. <style>
  8. body {
  9. padding: 0;
  10. margin: 0;
  11. }
  12. html, body, #map {
  13. height: 590px;
  14. width: 600px;
  15. position: absolute;
  16. opacity: 0.999;
  17. }
  18. .tlo {
  19. height: 603px;
  20. width: 610px;
  21. position: absolute;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div id="map"></div>
  27. <div class="tlo">
  28. <img src="http://brzanek.webd.pl/2017/Leaflet.idw-master/example/mapaaa.png">
  29. </div>
  30. </body>
  31. <script src="http://cdn.leafletjs.com/leaflet/v1.0.0-beta.2/leaflet.js"> </script>
  32. <script src="../src/leaflet-idw.js"></script>
  33. <script>
  34. /*
  35. 18 = 2*
  36. 20 = 0*
  37. */
  38.  
  39. var meteoPoints = [
  40. [53.165246, 15.405640, "13"],
  41. [53.423798, 14.546544, "13"],
  42. [54.188946, 16.177284, "13"],
  43. [53.901899, 14.243151, "14"],
  44. [53.272598, 16.466926, "13"],
  45. [54.172996, 15.591984, "13"],
  46. [52.731677, 14.696901, "13"],
  47. [53.532029, 15.811808, "13"],
  48. [54.429791, 16.398224, "14"],
  49. [53.913285, 15.201148, "13"],
  50. [53.673976, 15.110885, "13"],
  51. [53.334351, 15.046874, "13"],
  52. [53.709982, 16.693660, "13"],
  53. [53.087991, 16.118558, "13"],
  54. [53.555588, 16.229920, "13"],
  55. [54.358499, 16.677729, "14"],
  56. [53.952695, 16.590419, "13"],
  57. [53.298850, 15.902762, "13"],
  58. [53.037661, 15.663925, "13"],
  59. [52.996378, 15.212792, "13"],
  60. [53.465263, 15.336522, "13"],
  61. [53.104978, 15.080064, "13"],
  62. [52.922836, 14.855624, "13"],
  63. [52.960999, 14.431242, "13"],
  64. [53.251748, 14.487758, "13"],
  65. [53.550950, 14.570500, "13"],
  66. [53.147528, 14.896472, "13"],
  67. [53.562454, 14.827649, "13"],
  68. [53.638311, 15.622662, "13"],
  69. [54.007723, 15.981029, "13"],
  70. [53.772207, 15.408535, "13"],
  71. [54.027723, 15.533004, "13"],
  72. [54.062919, 15.270917, "15"],
  73. [54.081248, 15.015305, "14"],
  74. [53.969001, 14.776628, "14"],
  75. [54.027660, 14.759995, "14"],
  76. ];
  77.  
  78. var map = L.map('map').setView([53.606015, 15.517806], 8);
  79.  
  80. var tiles = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
  81. attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
  82. }).addTo(map);
  83.  
  84. var idw = L.idwLayer(meteoPoints,{
  85. opacity: 1,
  86. maxZoom: 8,
  87. cellSize: 1,
  88. max: 63
  89. }).addTo(map);
  90.  
  91. </script>
  92. </html>

Ten kod odpowiada za interoplacje
leaflet-idw.js
http://brzanek.webd.pl/2017/Leaflet.idw-ma.../leaflet-idw.js
Go to the top of the page
+Quote Post
trueblue
post 24.03.2018, 19:33:10
Post #20





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

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


Zakres temperatur <-20,10>
xmin=-20
xmax=10

Dla x=-20, y=(-20 - -20)/(10 - -20)=0
Dla x=10, y=(10 - -20)/(10 - -20)=1
Dla x=0, y=(0 - -20)/(10 - -20)=0,6666
itd.


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this 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: 27.04.2024 - 21:47