Показать ссылку на закладку в базе данных

У меня есть база данных mysql с информацией о недвижимости. Любой намек на то, как я могу показать их на карте Google, но не все сразу? То есть я выбираю начальный адрес и тип свойства, и это показывает мне тот же тип в радиусе «х». После отображения маркеров вы можете фильтровать по типам, расположению и т. Д. Заранее спасибо

2
задан 27.11.2019, 23:25
1 ответ

Чтобы видеть, действительно, когда он занимается с geometrГ-экспертом, нормально, чтобы координаты отнеслись друг к другу как DOUBLE. TambiГ©n он quitarГ - в использование механизма MyISAM, который estГЎ я кормлю досыта устаревший:

CREATE TABLE `markers` (
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  `name` VARCHAR( 60 ) NOT NULL ,
  `address` VARCHAR( 80 ) NOT NULL ,
  `lat` DOUBLE NOT NULL ,
  `lng` DOUBLE NOT NULL
) ;

, Сказанные это, у MySQL есть функции geomГ©tricas давно (с 5.6 я верю) и ты не нуждаешься в том, чтобы преобразовать с радио земли:

Например, беря этот руководитель google, podrГ-эксперта получать точки, которые estГЎn по крайней мере 50Km из точки {lat:-33.8, lng: 150.5}

SELECT id, name, lat, lng, 
round(ST_Distance_Sphere(Point(lng,lat),Point(150.5,-33.8))) as distancia
FROM markers
WHERE ST_Distance_Sphere(Point(lng,lat),Point(150.5,-33.8))<50000

Этого равняется тому, чтобы делать одним cГ-rculo 50Km касательно упомянутой точки.

DBFiddle

, Чтобы работать с geometrГ-экспертом сложные, (polГ-gonos административных подразделений, например) привыкает сохранять ее geometrГ - в как бинарный и не как текст. В общем эта дисциплина занимается mГЎs хорошо с PostgreSQL и Ваш extensiГіn PostGIS, которые состоят mГЎs работоспособные и консистентные в том, что функции MySQL, но не estГЎ mГЎs пример.

Давайте Говорить, что сейчас у таблицы есть поле типа geometrГ - в:

CREATE TABLE `markers` (
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  `name` VARCHAR( 60 ) NOT NULL ,
  `address` VARCHAR( 80 ) NOT NULL ,
  `lat` DOUBLE NOT NULL ,
  `lng` DOUBLE NOT NULL,
  geom GEOMETRY
) ;

DespuГ©s наполнения ее с данными о google, мы обновляем ее:

UPDATE markers set geom=Point(lng,lat);

Сейчас podrГ-схвати, консультироваться прямо относительно поля, не вычисляя точки для каждой линии:

SELECT id,
       name, 
       st_y(geom) as lat,
       st_x(geom) as lng,  
       round(ST_Distance_Sphere(geom,Point(150.5,-33.8))) as distancia

FROM markers
WHERE ST_Distance_Sphere(geom,Point(150.5,-33.8))<50000

DBFiddle

В обоих случаях результат - тот же самый:

|id |          name        |    lat    |    lng   |dist. |
|---|----------------------|-----------|----------|------|
| 2 | BeeYourself Clothing |-33.729752 |150.83609 | 32035|
| 3 | Dress Code           |-33.949448 |151.008591| 49807|
| 5 | Fashiontasia         |-33.944489 |150.854706| 36476|
| 8 | Buena Ropa!          |-33.815521 |151.026642| 48688|
| 9 | Coxcomb and Lily...  |-33.829525 |150.873764| 34686|
3
ответ дан 01.12.2019, 10:47
  • 1
    Я делаю то, что ты показываешь мне, но мне дает ошибку ST _ Distance_Sphere does not exist с PHP 7.2.25 – oraculo 27.11.2019, 13:29
  • 2
    Qué механизм MySQL? Эса funció n он принадлежит MySQL 5.7 – amenadiel 27.11.2019, 14:45
  • 3
    Прости, versió n он 5.5.64-MariaDB – oraculo 27.11.2019, 15:30
  • 4
    У MariaDB нет этой funció n, расширение geomé tricas MySQL они произошли despué s fork и Marí aDB никогда он не был очень заинтересован. Но есть petitorio делает má s añ или: MDEV-13467 – amenadiel 27.11.2019, 15:43
  • 5
    Тогда пример, который я взял, не подает меня я понимаю. Которое necesitarí в serí во что-то из стиля: У меня есть таблица в mysql со списком недвижимого имущества, это Ваш тип, direcció n, широта и длина и провинция. Necesitarí чтобы мочь показывать их в карте, уезжая вместо показывания всех сразу), direcció показывая; n и, начиная с этой закладки, мочь просачиваться по провинции, типу, радио, и т.д. для того, чтобы уходила mostranso оставшаяся часть и по возможности, с таблицей данных под картой. Спасибо прежде всего. – oraculo 27.11.2019, 15:52