var placemark = new ymaps.geoObject.overlayFactory.interactiveGraphics.createOverlay(
new ymaps.geometry.pixel.Point(position, {}),
{},
this.icons[iconId] );
на самом деле как-то удручает, что показать 1000 объектов без кластеризации - это проблема. Я уж как ни пробовал - время первого формаитрования карты какое-то чудовищное (меньше 10 !!! секунд пока не получалось. и это на более менее сносном компе). Да, я понимаю, что потом оно будет летать, но юзер этого просто не поймет - он уйдет со страницы не дождавшись.
Оверлею нужно говорить setMap(map), вы его добавляете в коллекцию геообъектов. И включите пока mode=debug при подключении API - легче будет отлаживаться.
Не показывает потому, что вы оверлею скармливаете пиксельную геометрию у которой в координатах записаны широта и долгота. А там должны быть глобальные пиксельные координтаты на текущем масштабе. Получить их можно прогнав геокоординаты через проекцию. Или можно создать geometry.Point, выставить ей карту через setMap, задать опции, а затем взять у нее через метод getPixelGeometry пиксельную геометрию, соответствующую геокоординатам и состоянию карты. Геометрия еще кидает "pixelgeometrychange" при смене масштаба карты. По нему нужно обновлять у оверлеев пиксельные координаты задавая им новую пиксельную геометрию, которую также получаем через getPixelGeometry или из самого события event.get("newPixelGeometry").
У меня явно побыстрее. Возможно просто быстрее машина. Над производительностью мы еще обязательно поработаем. Увы не успели уделить должное внимание этой теме.