VisualStudio2017 > Reactテンプレート(TypeScript) > leaflet
VisualStudio2017のReactテンプレートを使ってleafletを表示します。 (IE11対応)
環境
バージョン:asp.net core 2.0
asp.net core 2.0のReactテンプレートはTypeScriptになります。
よってTypeScriptで記述していきます。
プロジェクト作成
React.jsテンプレートを使ってプロジェクトを作成します。
package.json
leaflet と@types/leafletを追加します。
"devDependencies": {
"leaflet": "1.3.1"
},
"dependencies": {
"@types/leaflet": "^1.2.7"
}
components
不要ファイル削除
ClientApp/components/配下の不要なファイルを削除
以下のファイル群はすぱっと消す
- FetchData.tsx
- Counter.tsx
- NavMenu.tsx
ファイル追加
マップ用のコンポーネント追加
- MapWorld.tsx
ファイル修正
routes.tsx
ファイルを削除したのでルーター設定も変更する。
import * as React from 'react';
import { Route } from 'react-router-dom';
import { Layout } from './components/Layout';
import { Home } from './components/Home';
export const routes = <Layout>
<Route exact path='/' component={ Home } />
</Layout>;
Layout.tsx
マップを全画面表示にする。
import * as React from 'react';
export interface LayoutProps {
children?: React.ReactNode;
}
export class Layout extends React.Component<LayoutProps, {}> {
public render() {
return <div id='root'>
{this.props.children}
</div>;
}
}
site.css
マップを全画面表示にするためのCSS設定。
html, body {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
}
#react-app, #root, #map, #mapUI {
width: inherit;
height: inherit;
background-color: #000;
}
MapWorld.tsx
Leafletを表示するコンポーネント
import * as React from 'react';
import * as L from 'leaflet';
import 'leaflet/dist/leaflet.css';
export class MapWorld extends React.Component<{}, {}> {
componentDidMount() {
this.init();
}
private init() {
let map = L.map('map')
let basemapLayer = new L.TileLayer('http://{s}.tiles.mapbox.com/v3/github.map-xgq2svrz/{z}/{x}/{y}.png');
map.addLayer(basemapLayer);
map.setView([35.6693863, 139.6012974], 5);
}
public render() {
return <div id="mapUI">
<div id='map'>a</div>
</div>;
}
}
Home.tsx
Leafletを表示するコンポーネントを表示する。
import * as React from 'react';
import { RouteComponentProps } from 'react-router';
import { MapWorld } from './MapWorld';
export class Home extends React.Component<RouteComponentProps<{}>, {}> {
public render() {
return <MapWorld />;
}
}
以上
Author And Source
この問題について(VisualStudio2017 > Reactテンプレート(TypeScript) > leaflet), 我々は、より多くの情報をここで見つけました https://qiita.com/sugasaki/items/2cc330309be4a5205f82著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .