{"id":2411,"date":"2021-10-30T18:40:29","date_gmt":"2021-10-30T16:40:29","guid":{"rendered":"https:\/\/guven.atbakan.com\/blog\/?p=2411"},"modified":"2024-04-14T00:25:24","modified_gmt":"2024-04-13T21:25:24","slug":"2-nokta-latitude-longitude-arasindaki-mesafeyi-mysql-st_distance_sphere-methodu-yardimiyla-olcme","status":"publish","type":"post","link":"https:\/\/guven.atbakan.com\/blog\/tr\/2-nokta-latitude-longitude-arasindaki-mesafeyi-mysql-st_distance_sphere-methodu-yardimiyla-olcme\/","title":{"rendered":"2 nokta (latitude-longitude) aras\u0131ndaki mesafeyi Mysql ST_Distance_Sphere methodu yard\u0131m\u0131yla \u00f6l\u00e7me"},"content":{"rendered":"<p>Read the English version of this article: <a href=\"https:\/\/guven.atbakan.com\/blog\/calculate-distance-between-2-points-latitude-longitude-with-mysql-st_distance_sphere-method\/\">https:\/\/guven.atbakan.com\/blog\/calculate-distance-between-2-points-latitude-longitude-with-mysql-st_distance_sphere-method\/<\/a><\/p>\n<hr \/>\n<p>E\u011fer 2 nokta aras\u0131ndaki mesafeyi \u00f6l\u00e7mek istiyorsan\u0131z, Mysql5.7 ile birlikte gelen <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/spatial-convenience-functions.html#function_st-distance-sphere\">ST_Distance_Sphere<\/a> methodundan faydalanabilirsiniz.<\/p>\n<p>Bir \u00f6rnek verecek olursak, diyelim ki verilen noktaya en yak\u0131n \u00fcyeyi getirmek istiyorsunuz: <code>41.0049823,28.7319855<\/code><\/p>\n<pre><code class=\"language-php\">&lt;?php\n$latitude = 41.0049823;\n$longitude = 28.7319855;\n\n$sql =  &quot;SELECT users.id, users.username, ST_Distance_Sphere(point(users.longitude, users.latitude),point({$longitude}, {$latitude})) as distance FROM users&quot;;<\/code><\/pre>\n<p>Yukar\u0131daki query sonucunda <code>distance<\/code> sonucunu metre biriminde alacaks\u0131n\u0131z. Burada ufak bir noktaya dikkat etmenizi istiyorum. Bu method <code>longitue-latitude<\/code> olarak kullan\u0131l\u0131r, <code>latitude-longitude<\/code> olarak de\u011fil. Neden bilmiyorum fakat ben s\u00fcrekli &quot;lat-lng&quot; \u015feklinde kulland\u0131\u011f\u0131m i\u00e7in biraz bocalam\u0131\u015ft\u0131m.<\/p>\n<p>\u015eimdi bir ba\u015fka \u00f6rnek ile peki\u015ftirelim. &quot;Verilen noktan\u0131n 100 metre yak\u0131n\u0131ndaki \u00fcyeleri getirelim&quot;.<\/p>\n<pre><code class=\"language-php\">&lt;?php\n$latitude = 41.0049823;\n$longitude = 28.7319855;\n\n$sql =  &quot;SELECT users.id, users.username, ST_Distance_Sphere(point(users.longitude, users.latitude),point({$longitude}, {$latitude})) as distance FROM users WHERE distance &lt; 100&quot;<\/code><\/pre>\n<p>Yukar\u0131daki sonu\u00e7 size \u00fcye listesini verecek. <code>ST_Distance_Sphere<\/code> methodunu ke\u015ffetmeden \u00f6nce sin\u00fcs, kosin\u00fcsl\u00fc, tanjantl\u0131 queryler ile u\u011fra\u015f\u0131yordum. Hem yava\u015f \u00e7al\u0131\u015f\u0131yordu hem de her zaman do\u011fru sonu\u00e7 vermiyordu. <code>ST_Distance_Sphere<\/code> methoduna hayat\u0131m\u0131z\u0131 kolayla\u015ft\u0131rd\u0131\u011f\u0131 i\u00e7in te\u015fekk\u00fcrler :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Read the English version of this article: https:\/\/guven.atbakan.com\/blog\/calculate-distance-between-2-points-latitude-longitude-with-mysql-st_distance_sphere-method\/ E\u011fer 2 nokta aras\u0131ndaki mesafeyi \u00f6l\u00e7mek istiyorsan\u0131z, Mysql5.7 ile birlikte gelen ST_Distance_Sphere methodundan faydalanabilirsiniz. Bir \u00f6rnek verecek olursak, diyelim ki verilen noktaya en yak\u0131n \u00fcyeyi getirmek istiyorsunuz: 41.0049823,28.7319855 &lt;?php $latitude = 41.0049823; $longitude = 28.7319855; $sql = &quot;SELECT users.id, users.username, ST_Distance_Sphere(point(users.longitude, users.latitude),point({$longitude}, {$latitude})) as distance FROM users&quot;; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4],"tags":[],"class_list":["post-2411","post","type-post","status-publish","format-standard","hentry","category-yazilim"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/posts\/2411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/comments?post=2411"}],"version-history":[{"count":2,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/posts\/2411\/revisions"}],"predecessor-version":[{"id":2537,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/posts\/2411\/revisions\/2537"}],"wp:attachment":[{"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/media?parent=2411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/categories?post=2411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/tags?post=2411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}