Сейчас вывод объектов реализовано с помощью RemoteObjectManager
на сервере отправляется запрос ../tile?bbox=41.1704,0.0000,66.6535,112.5000&zoom=5&callback=id_1590734764252265
объектов много и каждый раз когда состоянии карты меняется делается запрос по координатам для выборки объектов
$bbox = explode(',', Yii::$app->request->get('bbox'));
$query = Object::find()
->select('latitude, longitude')
->andFilterWhere(['>', 'latitude', $bbox[0]])
->andFilterWhere(['<', 'latitude', $bbox[2]])
->andFilterWhere(['>', 'longitude', $bbox[1]])
->andFilterWhere(['<', 'longitude', $bbox[3]]);
$models = $query->all();
$objects = [];
foreach ($models as $model) {
$objects[] = ..; //данные метки
}
return [
'callback' => '...'
'data' => [
'error' => null,
'data' => [
"type" => "FeatureCollection",
"features" => $objects
]
]];
но что то подсказывает мне, что надо переделать , так как объекты выбираются повторно каждый раз если входят в эту область и даже с меньшим количеством(условно 10к) уже начинает тормозит иногда и вовсе выдавать 500 ошибку