#angular #typescript #ionic-framework #leaflet #ionic2
#angular #машинопись #ионный фреймворк #листовка #ionic2
Вопрос:
Я новичок в Ionic2 и Angular2 с typescript, и я хочу создать мобильное приложение для iOS и Android. В качестве следующего шага я хочу включить карту и найденную листовку, чтобы легко переключаться между GoogleMaps и OSM…
Итак, мои проблемы начались с установки: существуют разные пакеты, такие как npm install leaflet
или npm install leaflet-map
или npm install ui-leaflet
и многие другие..
Во-вторых, я понятия не имею, как тогда включить эти пакеты. Было бы здорово, если бы кто-нибудь мог предоставить мне действительно простое базовое приложение в Ionic2, показывающее карту-листовку.
Ответ №1:
Хорошо .. Сначала установите листовку и ее типизацию
npm install leaflet --save
npm install @types/leaflet --save
Затем импортируйте листовку в свой компонент или что-то еще с помощью
import 'leaflet';
В html-файле добавьте div с id="map"
предустановленным размером (лучше сделать это через css).
<div style="height: 180px" id="map"></div>
Поскольку styleUrls: []
в Ionic2 все еще есть ошибки, вам также необходимо добавить стили листовки в ваш html-файл:
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.1/dist/leaflet.css" />
После этой подготовки вы можете начать с учебника по листовке, подобного этому:
ngOnInit(): void {
var map = L.map('map')
.setView([51.505, -0.09], 13);
L.tileLayer('https://api.tiles.mapbox.com/v4/mapbox.streets-basic/{z}/{x}/{y}.png?access_token={accessToken}', {
attribution: 'Map data amp;copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18,
accessToken: 'xxx'
}).addTo(this.map);
}
Комментарии:
1. Не могли бы вы где-нибудь опубликовать свой код? Я обновляю до ionic1 с помощью своего приложения-листовки и пытаюсь разобраться в этом. Приветствия!
2. Все эти строки являются строками, связанными с ionic 2 . Все остальное должно быть равно вашему уже существующему коду. Например, добавление маркеров и так далее. Но не стесняйтесь спрашивать.
3. Запустил его. Спасибо. Однако у меня проблема с загрузкой фрагментов карты. Они редко появляются с пустыми пробелами, и обработка карты, такая как масштабирование, не помогает. Гладкая работа была возможна с помощью
https://github.com/tsubik/ionic2-geofence
кода, но, начиная с пустого шаблона, он обеспечивает такой неуклюжий интерфейс. Есть идеи?4. Правильно ли вы используете
tileLayer
? Я добавил его в решение выше.5.
Leaflet.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png").addTo(this.map);