diff --git a/ground/controllers/JsonController.php b/ground/controllers/JsonController.php index 0b76365..c088a4e 100644 --- a/ground/controllers/JsonController.php +++ b/ground/controllers/JsonController.php @@ -192,5 +192,22 @@ class JsonController extends Controller } } + static function actionGeoCoding() + { + $address = isset($_GET['search']) ? $_GET['search'] : ''; + $res = @file_get_contents('http://geocode-maps.yandex.ru/1.x/?format=json&geocode='.urlencode($address)); + $res = json_decode($res, true); + + if (isset ($res['response']['GeoObjectCollection']['featureMember'][0]['GeoObject']['Point']['pos'])) + $point = explode (' ', $res['response']['GeoObjectCollection']['featureMember'][0]['GeoObject']['Point']['pos']); + else + $point = array(0, 0); + + $coords = array(); + $coords['lat'] = $point[1]; + $coords['lng'] = $point[0]; + + self::renderPartial('json.php', $coords); + } } diff --git a/ground/views/indexTemplate.php b/ground/views/indexTemplate.php index fab6f8a..8f7cbfd 100644 --- a/ground/views/indexTemplate.php +++ b/ground/views/indexTemplate.php @@ -6,6 +6,7 @@
+
@@ -26,7 +27,13 @@ Как пользоваться
Легенда
Список точек
-
+ +
+

Карты

+ Layers +
+
+

Фильтры и поиск

@@ -34,10 +41,6 @@
-
-

Карты

- Layers -

Маршрут

diff --git a/public/css/style.css b/public/css/style.css index 4e41e23..ccb3dd8 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -7,7 +7,7 @@ */ html {height: 100%;} -body {margin: 0; padding: 0; height: 100%;} +body {margin: 0; padding: 0; height: 100%; width: 100%; overflow: hidden;} div#map {width: 100%; position: absolute; top: 0; bottom: 0px;} body.openBox div#map {right: 250px;} div.infoCard h3 {text-align: center; margin-top: 0;} @@ -20,7 +20,7 @@ div.add {cursor: pointer;} .form-group.has-error .error {display: inline-block;} #wayPoints {margin-bottom: 10px;} -#wayPoints .wayPoint {cursor: pointer; border: solid 1px #999; padding: 2px 5px; margin-bottom: 3px;} +#wayPoints .wayPoint {cursor: pointer; border: solid 1px #999; padding: 2px 5px; margin-bottom: 3px; background-color: #fff;} #wayPoints .wayPoint span {font-weight: bold; color: red;} #routes {margin-bottom: 10px; height: 200px; background-color: #ff9999;} @@ -44,7 +44,8 @@ body.openBox div#box {display: block;} div#box {width: 250px; display: none; position: absolute; top: 0; right: 0;bottom: 0px; border-left: 2px solid rgba(45, 45, 45, 0.8); padding: 0 7px;} div#box #boxClose {position: absolute; right: 7px; top: 7px; color: #999; font-size: 18px; font-weight: bolder; cursor: pointer;} div#box div {display: none;} -div#box div > div{display: block;} +div#box div div{display: block;} +div#box h3 {margin-top: 10px;} /*Leaflet FIX*/ .leaflet-popup-content-wrapper .leaflet-popup-scrolled {border-bottom: none;border-top: none;} \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js index 5fa637b..7804860 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -287,16 +287,26 @@ function initCategories() */ function searchAdderess() { - var myGeocoder = ymaps.geocode($('#addressField').val()); - myGeocoder.then( - function(res) { - search = new ymaps.Placemark(res.geoObjects.get(0).geometry.getCoordinates()); - myMap.geoObjects.add(search); - myMap.setCenter(res.geoObjects.get(0).geometry.getCoordinates(), 10); - }, - function(err) { + $.ajax({ + url: "/json/geocoding", + data: { + search: $('#addressField').val() + }, + success: function(data) + { + if (data.lat && data.lng) + { + myMap.setView([data.lat, data.lng], 13); + L.popup() + .setLatLng([data.lat, data.lng]) + .setContent('Координаты: lat:'+data.lat+' lng:'+data.lng) + .openOn(myMap); + } else + { + alert('Ничего не найдено.'); } - ); + } + }); } /**