<?php $array_shops=array('_1','_2'); $coords_file=array(); $geo_objects=array(); for($i=0;$i<count($array_shops);$i++) { $coords_file[$i]=file_get_contents("http://maps.yandex.ru/?text=".urlencode($_GET['town']." ".$array_shops[$i])); $start=strpos($coords_file[$i],'{"request":{"args":'); $end=strpos($coords_file[$i],'</script>',$start); $lenght=$end-$start; $js=json_decode(substr($coords_file[$i],$start,$lenght),1); $js=$js['vpage']['data']['businesses']['GeoObjectCollection']['features']; foreach($js as $value) { $geo_objects[]=array( 'coordinates' =>array($value['geometry']['coordinates'][1], $value['geometry']['coordinates'][0]), 'address'=>$value['properties']['CompanyMetaData']['address'], 'name_shop'=>$array_shops[$i] ); } } $js_array=json_encode($geo_objects); echo $js_array; ?>
ymaps.ready(init); function init () { var myMap = new ymaps.Map("map", { // center: [ymaps.geolocation.latitude, ymaps.geolocation.longitude], zoom: 12}) // var town=ymaps.geolocation.city; var data_send=new Object(); data_send.town = town; var coords=[]; var address=[]; var names_shop=[]; var json_array; jQuery.ajax( { url:"json_response.php", data: data_send, dataType: 'json', success: function(data){ json_array=data; for(key in json_array){ coords.push(json_array[key].coordinates); address.push(json_array[key].address); names_shop.push(json_array[key].name_shop); } // var myCollection = new ymaps.GeoObjectCollection({}, {preset: 'twirl#shopIcon'}); for (var i = 0; i < coords.length; i++){ myCollection.add(new ymaps.Placemark(coords[i], { balloonContentHeader:names_shop[i], balloonContent: address[i], })); } myMap.geoObjects.add(myCollection); } }); // myMap.controls.add(new ymaps.control.ZoomControl()); myMap.controls.add('mapTools'); myMap.controls.add('typeSelector'); }
Source: https://habr.com/ru/post/154581/
All Articles